我有一个批处理脚本(基于这个答案):
@echo off
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
echo %%x>>C:\Users\TechMadmin\Desktop\scripts\a.txt
)
move /y C:\Users\TechMadmin\Desktop\scripts\a.txt C:\Users\TechMadmin\Desktop\scripts\b.txt
批处理代码的输出是
D:\v\a.csv
D:\v\b.txt
D:\v\c.xml
%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%
现在我的要求是向输出文件添加时间戳,即: 。
例如:我的输出文件是 D:\v\a.csv,但现在应该是
D:\v\a_%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.csv
D:\v\b_%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
D:\v\c%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.xml
答案1
我的要求是添加时间戳
使用以下批处理文件。
@echo off
set datetime=%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
echo %%~dpnx_%datetime%%%~xx>>C:\Users\TechMadmin\Desktop\scripts\a.txt
)
move /y C:\Users\TechMadmin\Desktop\scripts\a.txt C:\Users\TechMadmin\Desktop\scripts\b.txt
笔记:
%%~dpnx
是完整的文件名,包括驱动器和路径,但不包括扩展名(示例D:\v\a
)。_
是下划线字符。%datetime%
是日期时间字符串的值%%~xx
是文件扩展名(例如.csv
)。>>
是重定向操作符。尚未全面测试。
您正在使用与语言环境相关的函数来获取日期组件(与我的系统日期格式不匹配)
- 一个简化的示例按预期工作。
如果您想要一个与日期和时间组件的区域设置无关的解决方案,请参阅我的答案在 Windows cmd 中打印日期时间获取所需代码。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。