2012-02-25 117 views
0

我还没有创建复杂的.bat文件多年,我的知识已经离开了我。需要创建一个.bat文件,该文件创建具有某些参数的另一个.bat文件

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

例如:

bat文件创建一个包含bat文件:

myprogram.exe ARG1参数3 ARG4 ARG 5 “arg5” currenttimedatehour currenttimedatehour +1小时

为 “arg5” - 这个参数必须在当前时间内,“” 它需要在YYYY-MM-DD-HHHH格式中:2012-02-25-1800 currenttimedatehour + 1hour它需要在YYYY-MM-DD-HHHH格式:2012-02-25-1900(无论当前时间加1小时)

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

我还没有尝试currenttimedatehour部分,因为我不知道如何让它看当前的日期和时间和格式所需的格式,更少增加一个小时呢?

这可以用.bat文件来完成吗?如果是这样,任何人都会如此善良地分享他们的知识和我如何做到这一点的例子?

回答

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参数3 ARG4 “arg5” 2012 -02-24-600 2012-02-24-700

我希望这帮助

+0

它接缝工作的大部分,它只是从来没有创建输出文件。我在它的末尾添加了一个暂停,并且它显示了我需要写入输出文件的内容,但它永远不会创建该文件。您的时间日期格式完全符合我的需要。不知道为什么它会正确显示在窗口中,不会输出到文件。有什么想法吗?谢谢,B – NuckinFutz 2012-02-25 11:56:31

+0

嗯,我得到它创建输出文件。这是我的错字。我在我的一个参数中打开了“但没有结束”,这导致它不创建文件。只要我纠正一切都是金色的。 非常感谢你的帮助。 我会投它,但它不会让我,因为我在这里没有代表。:-) 再次感谢 B – NuckinFutz 2012-02-25 12:34:39

+0

不客气! =) – 2012-02-25 15:50:26

相关问题