CMD/BAT - [решено] Произвольный запуск одного из бат файлов
-
XXXp
CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Помогите, очень нужна помощь.
Есть 6 batников, допустим c:/bat/1.bat, c:/bat/2.bat, c:/bat/3.bat и тд., нужно запускать один из них в произвольном (random) порядке.
Заранее огромное спасибо!
Есть 6 batников, допустим c:/bat/1.bat, c:/bat/2.bat, c:/bat/3.bat и тд., нужно запускать один из них в произвольном (random) порядке.
Заранее огромное спасибо!
-
XXXp
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Код:
Код: Выделить всё
@Echo Off
SetLocal EnableDelayedExpansion
:: Задаём имена файлов для запуска через запятую, пробелы в именах допустимы.
Set Files[]=one.bat,two.bat,three.bat,two hundreds.bat,something.exe
:: Подсчитываем общее число указанных файлов и пишем их имена в переменные
Set i=0
Set "Files[]=%Files[]:,=" "%"
Set "Files[]="%Files[]%""
For %%A In (%Files[]%) Do (
Set /A i+=1
Set Files[!i!]=%%~A
)
:: С помощью ГПСЧ выбираем выбираем случайный файл из списка и запускаем его
Echo %Random%!Random!>nul
Set /A n=(!i!*!Random!/32768)+1
Start "" "!Files[%n%]!"
Pause&Exit-
XXXp
-
Foreigner
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Код:
Код: Выделить всё
@echo off
setlocal
for %%i in ("c:\bat\*.bat") do call:1 "%%~nxi"
for /f "tokens=2 delims==" %%i in ('set bat_') do set "bat=%%i"
start "" "c:\bat\%bat%"
goto:eof
:1
set "bat_%random%=%~1"-
XXXp
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Foreigner, Anonymоus, Спасибо большое!
-
XXXp
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Вопрос только, там в бат файлах у меня простейшие действия типа move, copy и тд. Как сделать чтобы после запуска ваших скриптов и выполнения команды из рандомного батника, cmd.exe закрывался, а то он у меня остается запущенным в режиме командной строки...
-
XXXp
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Цитата XXXp:
Как сделать чтобы после запуска ваших скриптов и выполнения команды из рандомного батника, cmd.exe закрывался, а то он у меня остается запущенным в режиме командной строки...
Ещё вчера заметил, что и Anonymоus, и Foreigner, как сговорившись
, для вызова пакетного файла используют команду "START".
При таком способе вызова действительно окно "cmd.exe" остаётся открытым, так как пакетный файл запускается интерпретатором командной строки по умолчанию с ключом "/K" ("выполнение указанной команды (строки) без последующего завершения").
В этом случае не поможет даже
Цитата Foreigner:
замени goto:eof на exit
.
Чтобы этого не происходило, для команды "START" надо использовать такую конструкцию:
Код:
.
А вообще для вызова пакетного файла лучше использовать команду "CALL":
Код:
.
Как сделать чтобы после запуска ваших скриптов и выполнения команды из рандомного батника, cmd.exe закрывался, а то он у меня остается запущенным в режиме командной строки...
CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Ещё вчера заметил, что и Anonymоus, и Foreigner, как сговорившись
, для вызова пакетного файла используют команду "START". При таком способе вызова действительно окно "cmd.exe" остаётся открытым, так как пакетный файл запускается интерпретатором командной строки по умолчанию с ключом "/K" ("выполнение указанной команды (строки) без последующего завершения").
В этом случае не поможет даже
Цитата Foreigner:
замени goto:eof на exit
CMD/BAT - [решено] Произвольный запуск одного из бат файлов
.
Чтобы этого не происходило, для команды "START" надо использовать такую конструкцию:
Код:
Код: Выделить всё
start "" cmd /c "c:\bat\%bat%".
А вообще для вызова пакетного файла лучше использовать команду "CALL":
Код:
Код: Выделить всё
call "c:\bat\%bat%".
-
Foreigner
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Цитата Georgio:
В этом случае не поможет даже
Почему? Запускающий батник отработает и окно закроется.
В этом случае не поможет даже
CMD/BAT - [решено] Произвольный запуск одного из бат файлов
Почему? Запускающий батник отработает и окно закроется.
-
Foreigner
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
У вызываемого пакетного файла нет своего окна. Есть окно процесса "cmd.exe" c командной строкой
Код:
,
а такое окно само не закроется.
Код:
Код: Выделить всё
C:\Windows\system32\cmd.exe /K "c:\bat\example.bat",
а такое окно само не закроется.
-
Georgio
Re: CMD/BAT - [решено] Произвольный запуск одного из бат файлов
У вызываемого пакетного файла нет своего окна. Есть окно процесса "cmd.exe" c командной строкой
Код:
,
а такое окно само не закроется.
Код:
Код: Выделить всё
C:\Windows\system32\cmd.exe /K "c:\bat\example.bat",
а такое окно само не закроется.