【问题标题】:need to create a .bat file that creates another .bat file with certain parameters需要创建一个 .bat 文件,该文件创建另一个具有某些参数的 .bat 文件
【发布时间】:2012-02-25 11:01:45
【问题描述】:

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

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

例如:

.bat 文件创建一个 .bat 文件,其中包含:

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

对于 "arg5" - 这个参数必须在 "" 对于 currenttimedatehour 它需要采用 YYYY-MM-DD-HHHH 格式 EX: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 文件完成吗?如果是这样,有人愿意分享他们的知识和我如何做到这一点的例子吗?

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    你可以有一个像这样的“批处理生成器”(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

    希望对你有帮助

    【讨论】:

    • 它在大多数情况下都能正常工作,只是从不创建输出文件。我在它的末尾添加了一个暂停,它准确地显示了我需要写入输出文件的内容,但它从不创建文件。您的时间日期格式完全符合我的需要。不知道为什么它会正确显示在窗口中只是不会输出到文件。有什么想法吗?谢谢,B
    • 好吧,我得到它来创建输出文件。这是我的错字。我在我的一个 args 中有操作“但不是结尾”,这导致它无法创建文件。一旦我纠正了一切都是金色的。非常感谢你的帮助。我会投票,但它不会让我,因为我在这里没有代表。 :-) 再次感谢 B
    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 2017-12-07
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2018-05-26
    相关资源
    最近更新 更多