这是我的情况:
@echo off
Setlocal EnableDelayedExpansion
set file=C:\Users\test\Desktop\fscls.cfg
如何将%file%变量重命名为get(使用echo命令):
C:\Users\test\Desktop\TIMESTAMP_fscls.cfg
答案 0 :(得分:1)
%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 String Manipulation上的此页。
如果您的%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
的最后几页。