необходимо создать файл .bat, который создает другой файл .bat с определенными параметрами - PullRequest
0 голосов
/ 25 февраля 2012

Я не создавал сложные файлы .bat годами, и мои знания оставили меня.

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

например:

.bat файл создает .bat файл, который содержит:

myprogram.exe arg1 arg2 arg3 arg4 arg 5 "arg5" currenttimedatehour currenttimedatehour + 1hour

для "arg5" - этот аргумент должен быть внутри "" для currenttimedatehour он должен быть в формате ГГГГ-ММ-ДД-ЧЧЧЧ, например: 2012-02-25-1800 для currenttimedatehour + 1hour он должен быть в формате ГГГГ-ММ-ДД-ЧЧЧЧ: 2012-02-25-1900 (независимо от текущего времени плюс 1 час)

когда я пытаюсь использовать простой ECHO myprogram.exe arg1 arg2 arg3 arg4 arg 5 "arg5" currenttimedatehour currenttimedatehour + 1час> myfile.bat действует так, как будто он пытается запустить "myprogram.exe" вместо записи его в выходной файл myfile.bat

Я не пытался использовать текущую часть часа, так как понятия не имею, как заставить ее посмотреть текущую дату и время и отформатировать ее в необходимом формате, тем более добавить к ней час?

это можно сделать с помощью файла .bat? Если да, то будет ли так любезно поделиться своими знаниями и примерами того, как я могу это сделать?

1 Ответ

3 голосов
/ 25 февраля 2012

У вас может быть такой «генератор партии», как этот (gen.bat):

@echo off

set Y=%date:~10,4%
set M=%date:~4,2%
set D=%date:~7,2%

set /a H=%time:~0,2%
set /a HplusOne=%H+1

set curtime=%Y%-%M%-%D%-%H%00
set curtimePlusOne=%Y%-%M%-%D%-%HplusOne%00

echo myprogram.exe %1 %2 %3 %4 "%5" %curtime% %curtimePlusOne% > caller.bat

Он собирает 5 параметров и генерирует новый пакетный файл с именем "caller.bat", что вы должны убедиться, что формат даты и времени совпадает с моим (может быть, нет ... это забавная часть для редактирования позиций символов для извлечения год / месяц / день и т. д.). В целях тестирования вы можете повторить% date% и% time%, чтобы получить правильные позиции, если это не так.

Теперь давайте создадим тестер (gentest.bat):

@echo off
gen.bat arg1 arg2 arg3 arg4 arg5

вывод в caller.bat должен быть

myprogram.exe arg1 arg2 arg3 arg4 "arg5" 2012-02-24-600 2012-02-24-700

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...