Re: У кого-нибудь есть описание командного интерпритатора DOC/cmd ?

navo2009

Нужно написать bat (cmd) файл, который будет вызывать в цикле одну и ту же программу с параметром , который является именем файла, но зависит от переменой цикла, ну т.е. вызывается
program.exe 001.txt
program.exe 002.txt
...
program.exe 039.txt
и т.д. ну только так чтоб в цикле, а не писать каждый раз для каждого txt файла отдельную строчку?

Helga87

for /L %i in (1, 1, 9) do program.exe 00%i.txt
for /L %i in (10, 1, 39) do program.exe 0%i.txt

navo2009

Спасибо, а теперь ещё вопрос - а так чтоб две программы, ну
в смысле после do можно было вставить блок для исполнения, как в си
for (...)
{
programm1 0%i.txt
programm2 0%i.txt
}

vall

[KOHTPA_MODE]
ужас. то-ли дело
for i in `seq -w 1 100` ; do
program ${i}.txt
done
или
seq -w 1 100 | while read i ; do
program ${i}.txt
done
[/KOHTPA_MODE]

Helga87

Внутренности цикла вынеси в отдельный файл, например inner.bat
а вызывай:
for /L %i in (1, 1, 9) do inner.bat %i

vall

а чо? операторные скобки M$ ещё не изобрела?
помнится эта тема уже поднималась.
можно пайп собрать из комманд чтоб они одновременно запускались.

Helga87

Да, согласен. Наследство DOS ужастно. Но на подходе (в стадии Beta 3) Microsoft Command Shell aka Monad:
 
$i=1; while($i -le 39) { program.exe ($i.ToString('d3')+'.txt'); $i++ }  

Helga87

я просто их не заботал.

artimon

В Win2000/XP изобрела.

Andbar

for /L %i in (1, 1, 9) do inner.bat %i
CALL !

gopnik1994

внутренности цикла вынеси в отдельный файл, например inner.bat
извращенец! мало того, что скобки давно уже есть...

for /L %i in (10, 1, 39) do (
program.exe 0%i.txt
program2.exe 0%i.txt
)

....
так и вызывать можно не только внешний файл, но и внутренние процедуры:

for /L %i in (10, 1, 39) do call :do_smth 0%i.txt
goto :EOF
:do_smth
program.exe %1
program2.exe %1
goto :EOF

Andbar

ты про разделение команд символом & ?

artimon

Нет. См. пост HG.

Helga87

for /L %i in (1, 1, 9) do inner.bat %i
--------------------------------------------------------------------------------
CALL !

Не нужен call. Проверь, работает и без него. По крайней мере в 2003

Helga87

извращенец!

Я предложил способ с внешним файлом, потому что не знал другого способа - сейчас cmd знаю хуже, чем bash и Monad.
Примечательный пример, кстати. Потому что показывает, что извращенские способы зачастую предлагаются от незнания матчасти. В данном случае - незнания cmd.

psihodog

Не нужен call. Проверь, работает и без него. По крайней мере в 2003
В 2000 не работает.

Helga87

В 2000 и автодописывание по tab не работает (хотя вроде есть какая-то хитрая комбинация клавиш, которая делает то же самое, что и tab в 2003-м cmd). Вот в XP, интересно, работает или нет.

maggi14

> В 2000 и автодописывание по tab не работает
у меня работало. про СП4.

Helga87

мб. Я на 2000-й с апреля 2003-го года не сидел.

vall

по-дефолту не работает, но включается в реестре или ключиком /F:ON
а кнопка по которой это идёт меняется в реестре.

Helga87

Кость, а в каком SP этот ключик появился?
upd. Судя по информации отсюда, это было сразу. Непонятно только, почему по умолчанию только по Ctrl-D работало.
Оставить комментарий
Имя или ник:
Комментарий: