管道批处理文件中的自定义输出文件名

时间:2014-04-11 23:16:25

标签: batch-file

使用>管道命令输出到文件,有没有办法让输出文件名是动态的?

简单的例子

c:\ systeminformation> \ servername \ share \ sysinfo.txt(输出文件名是sysinfo.txt,可以覆盖,或使用>>附加)

我可以添加一个可以提供唯一输出文件名的命令吗?如果没有别的,可能是DTS stamp.txt格式?这样输出文件名是唯一的。

3 个答案:

答案 0 :(得分:0)

是的,基本上你只需要把文件名放到一个变量中。

set "var=\servername\share\sysinfo.txt"
whatevercommand >"%var%"

除此之外,你的问题太模糊了。在特殊情况下,这种技术需要改变(但我猜你需要\\servername\...

答案 1 :(得分:0)

如果符合您的目的,您可以动态地将日期和时间附加到文件名。

示例:

set dynamicFname=sysinfo_%date:~4,2%_%date:~7,2%_%date:~10%_%time:~0,2%_%time:~3,2%.txt
c:\systeminformation > \servername\share\%dynamicFname%

结果文件名将是这样的:

sysinfo_04_11_2014_16_44.txt sysinfo_04_11_2014_16_47.txt

04 =月,11 =日,2014 =年,16 = 24格式的小时,44 =分钟

请注意,每次要更新存储在变量" dynamicFname"

中的日期/时间时,都需要运行set命令

该解决方案的灵感来自于此网址: http://en.kioskea.net/forum/affich-130043-dos-create-filename-based-on-date

答案 2 :(得分:0)

c:\systeminformation > \\servername\share\sysinfo%random%.txt 

set name=%date:/=_%
c:\systeminformation > \\servername\share\sysinfo%name%.txt