使用Windows批处理将日期时间戳添加到复制的文件
我认为这很简单但似乎比我想象的更具挑战性。 我想要一个文件被复制和粘贴附加时间戳。我使用此代码获取时间戳: set hournum=%time:~0,2% if %hournum% gtr 9 (set timeback=_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s) else (set timeback=_%date:~10,4%%date:~4,2%%date:~7,2%_0%time:~1,1%h%time:~3,2%m%time:~6,2%s) Set FileAffected=%1 echo %FileAffected:~0,-1%%timeback% 这将使文件FILE.TXT成为FILE.TXT_2015-03-05_11h56m32s 但我显然希望它成为现实 FILE_20150305_11h56m32s.TXT 文件扩展名可以是任何扩展名或任何长度。谢谢你的帮助。 编辑:FileAffected与引号一起传递,所以我只是用~0,-1剥离它们。 我确实发现如果我这样做: FOR /f %%i IN (%FileAffected%) DO ( ECHO filename=%%~fi ECHO fileextension=%%~xi ) 如果我回显FileAffected,我得到带空格的完整路径名。但是,如果我使用FOR / F命令,文件名会在空格后截断任何内容。即使在“IN”命令中向“%FileAffected”变量添加额外的引号,仍然无法修复它,也不会在fi或xi周围添加引号。