这是我的情况:
@echo off
Setlocal EnableDelayedExpansion
set file=C:\Users\test\Desktop\fscls.cfg
如何重命名 %file% 变量以获取(使用 echo 命令):
C:\Users\test\Desktop\TIMESTAMP_fscls.cfg
这是我的情况:
@echo off
Setlocal EnableDelayedExpansion
set file=C:\Users\test\Desktop\fscls.cfg
如何重命名 %file% 变量以获取(使用 echo 命令):
C:\Users\test\Desktop\TIMESTAMP_fscls.cfg
%time%
环境变量包含时间戳。
:: Remove colons from %time%
set ts=%time::=%
:: Remove centiseconds from %ts%
set ts=%ts:~0,-3%
:: file=HHMMSS_file
set file=%ts%_%file%
如果您需要时间戳来包含日期,您可以通过%date%
以类似方式抓取环境变量来获取它。有关更多信息,请参阅有关DOS 字符串操作的此页面。
如果您的%file%
变量已经包含路径,并且您尝试在路径和文件名之间插入时间戳,那就有点棘手了。您要么需要使用for /f
循环,要么需要使用call
子例程来进行批量参数替换。
@echo off
setlocal
set file=C:\Users\test\Desktop\fscls.cfg
:: set ds=YYYYMMDDHHMMSS.etc (the result of wmic os get localdatetime)
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set ds=%%I
:: set ds=YYYYMMDD
set ds=%ds:~0,8%
:: Insert %ds% into %file%
call :insert "%file%" "%ds%_" file
echo new filename: %file%
:: end main
goto :EOF
:insert <path> <str_to_insert> <varname_to_set>
set "%~3=%~dp1%~2%~nx1"
有关更多信息,请参阅help for
和的最后几页。help call