Batch file 来自管道批处理文件的自定义输出文件名

Batch file 来自管道批处理文件的自定义输出文件名,batch-file,Batch File,使用>将命令输出管道化到文件时,是否有方法使输出文件名为动态文件名 简单例子 c:\systeminformation>\servername\share\sysinfo.txt(输出文件名为sysinfo.txt,可以重写,也可以使用>>追加) 我是否可以添加一个命令来提供唯一的输出文件名?如果没有其他内容,可能是DTS stamp.txt格式?这样,输出文件名是唯一的 是的,基本上只需将文件名放入变量中即可 set "var=\servername\share\sysinfo.txt" wh

使用>将命令输出管道化到文件时,是否有方法使输出文件名为动态文件名

简单例子

c:\systeminformation>\servername\share\sysinfo.txt(输出文件名为sysinfo.txt,可以重写,也可以使用>>追加)


我是否可以添加一个命令来提供唯一的输出文件名?如果没有其他内容,可能是DTS stamp.txt格式?这样,输出文件名是唯一的

是的,基本上只需将文件名放入变量中即可

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

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

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

例如:

set dynamicFname=sysinfo_%date:~4,2%_%date:~7,2%_%date:~10%_%time:~0,2%_%time:~3,2%.txt c:\systeminformation > \servername\share\%dynamicFname% 设置dynamicFname=sysinfo\u%date:~4,2%\u%date:~7,2%\u%date:~10%\u%time:~0,2%\u%time:~3,2%.txt c:\systeminformation>\servername\share\%DynamicName% 结果文件名如下所示:

sysinfo_04_11_2014_16_44.txt sysinfo_04_11_2014_16_47.txt

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

请注意,每次要更新变量“dynamicFname”中存储的日期/时间时,都需要运行set命令

该解决方案受以下url启发:


你能详细说明你的答案吗?键入set/?对于这两个命令的文档(尽管第一个命令没有使用set,但仍然在那里进行了文档记录)。首先是一个随机数。第二个是带有斜杠的日期,在文件名中是非法的,用下划线代替。多亏了所有回答我问题的人,“DoubleM”的回答非常准确。它工作得很好。
c:\systeminformation > \\servername\share\sysinfo%random%.txt 
set name=%date:/=_%
c:\systeminformation > \\servername\share\sysinfo%name%.txt