Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 2

Автор: Tipulatoid
Дата сообщения: 13.02.2007 07:20
tolyn77
Я так понимаю, вы синтаксис спрашиваете? Он тут
Автор: LeXorium
Дата сообщения: 13.02.2007 07:23
Еще раз, подобострастное "здравствуйте" гуру командной строки.
Еще одна задачка, которая ставит меня в тупик.

Есть вот такая связка батников:


Код: :start.bat
for %%y in (*.avi) do (
    MKDIR "screenshots"
    echo.Import^("E:\!!!Scans\common\common.avs"^)
    echo.DoIt^("%%~dpy%%y","%%~dpyscreenshots\"^)
) > "%%~ny.avs"

for %%y in (*.avs) do (
    C:\PROGRA~1\MPLAYE~1\MPUI.exe "%%y"
)
Автор: yurkesha
Дата сообщения: 13.02.2007 20:33

Код: FOR /R %%y in (*.AVI)
Автор: tolyn77
Дата сообщения: 14.02.2007 07:25
Tipulatoid
так получается оболочка все равно запускается? а можно что бы проверка полность проходила из командной строки? что количество принятых сообщения писал в консоли?
Автор: Tipulatoid
Дата сообщения: 14.02.2007 09:00
tolyn77
Нет, в Bat! этого нельзя. Это ведь GUI - программа
Автор: LeXorium
Дата сообщения: 14.02.2007 13:31
yurkesha
Спасибо, но мне бы готовое решение, а то от этих процентов голова кругом.
Автор: Elroir
Дата сообщения: 14.02.2007 22:01
LeXorium

Цитата:
мне бы готовое решение


Код:
@echo off
setlocal
set /p "start_dir=Please, enter the starting directory: "
for /r %start_dir% %%a in (*.avi) do (
md "%%~dpascreenshots" 2>nul
echo.Import^("E:\!!!Scans\common\common.avs"^)
echo.DoIt^("%%a","%%~dpascreenshots\"^)
) > "%%~dpna.avs"
for /r %start_dir% %%a in (*.avs) do (
C:\PROGRA~1\MPLAYE~1\MPUI.exe "%%a"
del /q "%%a"
)
Автор: LeXorium
Дата сообщения: 15.02.2007 05:20
Elroir
Ничего не пойму:
почему выдаваемые скрипты avs (за исключением скрипта в первой по порядку папке)
имеют вместо одной, две записи:

Код: Import("E:\!!!Scans\common\common.avs").Import("E:\!!!Scans\common\common.avs")
Автор: w8er
Дата сообщения: 15.02.2007 07:25
Вообщем есть батничек у меня, в нем забиты айпишники одного дома, тоесть ипы все разные. Батник проверяет пингами связь и если ип пингуется то записывает данный айпишник в тхт файл. У меня вопрос, а как можно написать батничек чтоб можно было просто загоянть другие ипы не перебивая их вручную, а чтоб на автомате ?
Т.е. я допустим захотел забить айпишники
192.168.0.1
192.167.2.3
123.32.45.6
123.76.88.9
112.43.76.0
как сделать так чтоб они автоматом забивались в мою структуры (мб черезчур тупую)
ping 192.168.0.2 -n 1 -l 1450 && echo 192.168.0.2 >> listing.txt
Заранее сенькс !!!.
Автор: Tipulatoid
Дата сообщения: 15.02.2007 07:58
w8er
Сохрани список ip-шников в отдельный файл (потом можно будет его редактировать - добавлять-удалять)
Допустим, имя его будет ip.txt

В батнике

Код: @echo off
setlocal
for /f "tokens=*" %%a in (ip.txt) do (
ping %%a -n 1 -l 1450 && echo %%a >> listing.txt
)
Автор: S377
Дата сообщения: 15.02.2007 11:09
Здравствуйте!
Давно хотел разобраться с *.bat файлами, но все как то не очень получалось кроме создания бэкапа дело не дошло. Но зайдя на ваш сайт очень удивился изобилием решений на *.bat файлах.
Мне стыдно задавать такой вопрос, но мне нужен очень на него ответ:
создаю батник к примеру такой
"c:\Program Files\Everest\everest.exe"
HS_DELAY 5000
start "c:\Program Files\Far\far.exe"

Что нужно сделать чтоб батник не ждал закрытия запущенной программы для выполнения следующей комманды?
Автор: KapralBel
Дата сообщения: 15.02.2007 11:29
S377
Start поставь перед вызовом
Автор: jawAka
Дата сообщения: 15.02.2007 11:36
Lapochka ili Chai


Цитата:
Есть файл file.txt c именами папок и файлов, полученный по команде dir /s/b > file.txt
Он большой (мегабайт 20-30).
Хочу найти в нём те строчки, длина которых приближается к 256 позициям. Ну, скажем, больше или равна 240 байтам.

Можно ли сделать это с помощью пакетника?

findstr /r /C:..........{240точек ровно, добейте сами } file.txt >file240.txt

Добавлено:

Цитата:
ping %%a -n 1 -l 1450 && echo %%a >> listing.txt

Незнаю как у вас, а у меня на w2000 ping всегда выполняется удачно... хоть 0% потерь хоть 100
Посему родился код
@echo off
for /l %%a in (1,1,254) do ping -n 1 192.168.1.%%a|find "(0%%">nul &&echo 192.168.1.%%a всё хорошо ||echo 192.168.1.%%a всё плохо!!!

По моему замечательно... Симпотичней чем шапке вроде
Автор: S377
Дата сообщения: 15.02.2007 12:08

Цитата:
S377
Start поставь перед вызовом

Всмысле вот так?:
start
"c:\Program Files\Everest\everest.exe"
start
"c:\Program Files\Far\far.exe"
поставил первая программа запустилась а вторая нет
если первую закрываю то только тогда запускается вторая
и к тому же досовские окошки сами не закрываются
Автор: yurkesha
Дата сообщения: 15.02.2007 12:24
В смысле вот так:
Код: start "" "c:\Program Files\Everest\everest.exe"
start "" "c:\Program Files\Far\far.exe"
Автор: S377
Дата сообщения: 15.02.2007 12:32

Цитата:
yurkesha

вот спасибо!!!
а я как только не пробовал, но видимо для правильного варианта у меня мозгов не хватило
еще раз спасибо!
Автор: Elroir
Дата сообщения: 15.02.2007 13:02
LeXorium

Цитата:
выдаваемые скрипты avs (за исключением скрипта в первой по порядку папке)
имеют вместо одной, две записи

В командах echo, убери точки и поставь вместо них пробелы:

Код:
echo Import^("E:\!!!Scans\common\common.avs"^)
echo DoIt^("%%a","%%~dpascreenshots\"^)
Автор: Maza Faka
Дата сообщения: 15.02.2007 13:21
S377
Насколько я понял тебе надо запустить две проги одновременно? Тогда так

Код:
@Echo off
"c:\Program Files\Everest\everest.exe" | "c:\Program Files\Far\far.exe"
Автор: yurkesha
Дата сообщения: 15.02.2007 13:40

Цитата:
Тогда так

Код: @Echo off
"c:\Program Files\Everest\everest.exe" | "c:\Program Files\Far\far.exe"

Автор: jawAka
Дата сообщения: 15.02.2007 14:00
Elroir
по -w на любителя

А про 240 - всё равно до конца рабочего дня допинаю одной строкой батника ...


Добавлено:
@echo off
setlocal enabledelayedexpansion
for /f %%f in (file.txt) do (set f=%%f& echo !f:~240!|find "(ECHO)">nul || echo %%f>>file240.txt)
Автор: LeXorium
Дата сообщения: 15.02.2007 15:02
Elroir! Не устану говорить спасибо и кланяться в пояс. Спасибо за всё.

Может еще подскажете, какой параметр добавить к командной строке, чтобы программа после проигрывания сама закрывалась?

Код: C:\PROGRA~1\MPLAYE~1\MPUI.exe "%%a"
Автор: Elroir
Дата сообщения: 15.02.2007 16:33
jawAka

Цитата:
всё равно до конца рабочего дня допинаю одной строкой батника

Так вот чем люди на работе занимаются
В твоем коде 3 проблемы:
1. Ты не указал в for-е "tokens=*" поэтому он берет не всю строку, а только до первого пробела.
2. find "(ECHO)" - ищет слово ECHO в скобках - а такого команда echo не выдает.
3. Предположим, что после 240-ого символа в строке есть подстрочка ECHO - у тебя эта строка не запишется.
P.S. После того, как я исправил все эти вещи, я запустил батник и дал ему в обработку одномегабайтный файл. На очень не слабом компе, после 15 минут ожидания, я прервал его работу. Представь, сколько будет обрабатываться 20-и мегабайтный файл.
P.P.S. Ты вообще код проверял?

Добавлено:
LeXorium

Цитата:
Может еще подскажете, какой параметр добавить к командной строке, чтобы программа после проигрывания сама закрывалась?

Программа - это mpui.exe? Это надо смотреть ее ключи - я с ней не знаком
Автор: jawAka
Дата сообщения: 15.02.2007 17:25
1 С токенами согласен, тестовый набор был кривой - без пробелов
2 echo без параметра - выдаёт текущее значение команды... (W2000&XP)
3 строку поиска можно расширить см. исполнение пункта 2

Долго...
Конечно bat скоростью не отличается
Автор: s800
Дата сообщения: 16.02.2007 01:30
Всем привет кто сталкивался с таким:
Нужно запустить bat-файл на др. машине сети ip 192.xxx.xxx.xxx., что бы он выполнялся именно на этой машине.
з.ы. Вариант подключить как сетевой диск не прошел, файл выполняеться на машине с которой производиться подключение.
(Варианты Radmin. удаленный раб. стол) не предлагать!! (безопасность блин!)
Спасибо
Автор: Elroir
Дата сообщения: 16.02.2007 01:34
s800
Почитай - http://www.microsoft.com/technet/sysinternals/utilities/psexec.mspx
Автор: s800
Дата сообщения: 16.02.2007 03:04
Elroir
В описании, прилагаемом к комплекту программ, сказано, что утилита PsExec
позволяет выполнять на удаленном компьютере программы командной стро-
ки. К сожалению, мне не удалось воспользоваться этой программой. В ре-
зультате попыток ее применения на удаленных компьютерах устанавливалась
служба, которая должна была обеспечить связь с сервером удаленной маши-
ны. Вероятно, последние обновления безопасности для Windows запретили
этой службе выполнять свои функции.
обидно не прокатило

Вопрос остался открытым
Автор: Solotoy
Дата сообщения: 16.02.2007 08:33
добрый ...
незнаю как сформулировать правельно...
кто знает как зделать простой бат файл который запустил он проработав ровно 30 сикунд закрылся, ?
просто открылся отсчитал определённое время в сикундах и закрылся...
ну очень нужен этот батник...
зарание благадарю...
Автор: oadm
Дата сообщения: 16.02.2007 08:46
ВОПРОС!
Написал батник для бекапа данных на DWD-RW
как определить суммарный объем всех данных в директории
...нужно для определения войдут ли все файлы на болванку
Автор: Tipulatoid
Дата сообщения: 16.02.2007 09:20
Solotoy

Код: ping -n 30 -w 1000 localhost > nul
Автор: jawAka
Дата сообщения: 16.02.2007 09:21
oadm
@for /F %%f IN ('dir /s /w /-c^|@find /c /v ""') do @set /a laststr=%%f-2
@echo %CD% & @for /F "skip=%laststr% tokens=2,3,*" %%f IN ('dir /s /w /-c') do @echo %%g %%h

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.