不确定只有批处理文件才能实现。
我有一个名为BaseFile.7z的文件位置是E:\ Backup \ C Drive Zip \ BaseFile.7z
是否可以创建使用创建日期重命名文件的批处理命令?例如BaseFile - 02-19-2015.7z
我目前有一个命令,用我下面粘贴的当前日期重命名文件以供参考,但这并不是我正在寻找的。我需要创作日期。
RENAME "E:\Backup\C Drive Zip\Jaipur.txt" "BaseFile - %date:/=-%.txt"
答案 0 :(得分:2)
@ECHO OFF
SETLOCAL
SET "filename=U:\sourcedir\zzz.zzz"
IF NOT EXIST "%filename%" ECHO "%filename%" NOT found&GOTO :eof
SET "datepart="
FOR /f "tokens=1-3delims=/-:" %%a IN ('dir /tc "%filename%"') DO IF "%%c" neq "" SET "datepart=%%a-%%b-%%c"
FOR /f %%a IN ("%filename%") DO FOR /f %%d IN ("%datepart%") DO ECHO(REN "%%a" - "%%~na %%d%%~xa"
GOTO :EOF
所需的REN命令仅用于ECHO
以用于测试目的。 在您确认命令正确后,将ECHO(REN
更改为REN
以实际重命名该文件。
请注意,日期引用的使用存在普遍的瑕疵。每个文件有三个日期 - 实际创建日期(使用/ tc),最后访问(/ ta)和最后写入(/ tw)。
进程找到文件,然后读取dir
列表并选择适当的日期。列表中包含第三个非空令牌的唯一或最后一行是相关文件的日期/时间,因此datepart
将获得yyyy-mm-dd hh
for/f %%a
然后将完整文件名应用到%%a
准备好分区到其组件中,for/f %%d
从datepart
分配第一个令牌(即直到空格)进入%% d。
将组件组合在一起,并报告重新开始...