需要创建一个.bat文件,该文件使用某些参数创建另一个.bat文件

时间:2012-02-25 11:01:45

标签: batch-file

多年来我没有创建复杂的.bat文件,而我的知识已经离开了我。

我需要做的是使用.bat文件创建另一个.bat文件,该文件将用于运行具有指定参数的程序。

例如:

.bat文件创建一个包含以下内容的.bat文件:

myprogram.exe arg1 arg2 arg3 arg4 arg 5“arg5”currenttimedatehour currenttimedatehour + 1小时

表示“arg5” - 此参数必须在“”内 对于currenttimedatehour它需要是YYYY-MM-DD-HHHH格式EX:2012-02-25-1800 for currenttimedatehour + 1小时它需要是YYYY-MM-DD-HHHH格式:2012-02-25-1900(无论当前时间是加1小时)

当我尝试使用简单的 ECHO myprogram.exe arg1 arg2 arg3 arg4 arg 5“arg5”currenttimedatehour currenttimedatehour + 1小时> myfile.bat就好像它试图运行“myprogram.exe”而不是将它写入输出myfile.bat

我没有尝试过currenttimedatehour部分,因为我不知道如何查看当前的日期和时间并以所需的格式对其进行格式化,更不用说添加一小时呢?

这可以用.bat文件完成吗?如果是这样,有人会如此友好地分享他们的知识以及如何做到这一点的例子吗?

1 个答案:

答案 0 :(得分:3)

你可以拥有一个"批量生成器"像这样(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

  

我希望这个帮助