如何使用批处理文件重命名文件以包含日期?

时间:2013-09-19 13:04:24

标签: windows file batch-file

我有一个显示闹钟打印机的文本文件。我想在Windows XP下设置一个批处理文件来更改报警打印机的默认名称以包含日期,这将使搜索错误变得更加容易。报警打印机被捕获到文本文件中。

我已经能够更改名称,但每次我尝试将名称设置为日期时,要么没有任何反应,要么将名称更改为代码。

到目前为止,我已经尝试过了

for /f "tokens=1-5 delims=/ "%d in (%date%) do rename "C:\TPM 4 Alarm Printer\test.txt" %%e-%%f-%%g.txt

for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set y=%%k
for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set d=%%k%%i%%j
for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do set t=%%i%%j
set t=%t%_ if "%t:~3,1%"=="_"
set t=0%t% set t=%t:~0,4%
set "C:\Users\e727896\Desktop\test.txt=%d%%t%"
echo %C:\Users\e727896\Desktop\test.txt% –

2 个答案:

答案 0 :(得分:6)

这样的东西应该适用于XP:

ren "C:\TPM 4 Alarm Printer\test.txt" "%date:~4,2%-%date:~7,2%-%date:~10,4%.txt"

只需根据您的问题进行调整。

答案 1 :(得分:6)

如果您使用的是XP专业版,这将提供更可靠的时间戳。

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
set "YY=%dt:~2,2%"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"

set datestamp=%YYYY%%MM%%DD%
set timestamp=%HH%%Min%%Sec%
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

ren "C:\TPM 4 Alarm Printer\test.txt" "Alarm - %fullstamp%.txt"