将日期/唯一标识符附加到文件并移动它



我已经开发了一个简单的批处理文件,我想将其设置为计划的任务以移动文件。

目前,这是我的代码;

move /-y "C:FolderFolderFolder*File*.csv" "C:FolderFolderFolderFolderFile.csv"
pause

但是,这显然会导致重复(以及第二次转移后的覆盖冲突)

如何附加日期(文件只会每天移动一次)或唯一的标识符来解决此问题?

谢谢

尝试

 move /-y "C:FolderFolderFolder*File*.csv" "C:FolderFolderFolderFolderFile_%date:~6,4%_%date:~3,2%_%date:~0,2%.csv" 

注意:上述命令中的数字6,4 3,2 0,2取决于您的日期格式。检查您的控制面板(或使用echo %date%)是否是否有默认日期格式。当然,您可以更改订单: - )

我的默认日期格式为dd/mm/yyyy&此片段将其更改为yyyy_mm_dd

您可能可以做类似的事情以将日期时间添加到文件名...

for/f" tokens = 1-5 delims =/" %% d in("%date%")do iname" c: folder folder folder folder folder folder folder file.csv" %% e-%%f-%% g.csv

test-台式机上创建的test.txt ran .bat(更改了文件名和位置,以匹配我的测试文件的名称和位置。

我运行.bat后,文件名已更改为11-06-2012.txt。

希望这会有所帮助。

问题很简单,但解决方案在批处理中很难看。例如,上面列出的答案之一为我产生以下输出:

C:>echo %date:~6,4%_%date:~3,2%_%date:~0,2%
/08/_ 1_Th

显然,它并不总是有效。幸运的是,Rob van der Woude已经准备了这样的解决方案。该代码为我产生以下输出:

DateParsed=20121108

我已经复制了Rob的代码,并在此处引用了他的来源以易于使用。

:: One of the ugliest scripts required for such a seemingly simple thing is getting dates parsed
:: http://www.robvanderwoude.com/datetimentparse.php
SET Today=%Date: =0%
SET Year=%Today:~-4%
:: Include 1 extra character, which will be either a leading zero or a trailing separator
SET Month=%Today:~-10,3%
:: Remove separator
SET Month=%Month:-=%
SET Month=%Month:/=%
:: Clear leading zeroes
SET /A Month = 100%Month% %% 100
:: And add one again, if necessary
SET /A Month = 100 + %Month%
SET Month=%Month:~-2%
SET Day=%Today:~-7,2%
:: Remove separator
SET Day=%Day:-=%
SET Day=%Day:/=%
:: Clear leading zeroes, as there may be 2 leading zeroes
SET /A Day = 100%Day% %% 100
:: And add one again, if necessary
SET /A Day = 100 + %Day%
SET Day=%Day:~-2%
SET DateParsed=%year%%month%%day%
echo DateParsed=%DateParsed%

最新更新