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

6
我有一个文本文件,用来显示警报打印机。我想在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
什么操作系统?Linux / Windows / Mac?请告诉我们一些关于文件名的信息...例如? - createproblem
我已经尝试过:for /f "tokens"1-5 delims=/"%d in (%date%) do rename "C:\TPM 4 Alarm Printer\test.txt" %%e-%%f-%%g.txt - GCSTider
我尝试过以下代码: 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% - GCSTider
1
忘记了操作系统。正在使用 Windows XP 桌面计算机。 - GCSTider
我有一个显示警报打印机的文本文件。我想设置一个批处理文件,将警报打印机的默认名称更改为包括日期,这将使查找错误变得更加容易。警报打印机被捕获到一个文本文件中。 - GCSTider
2个回答

6

在XP系统上,类似这样的内容应该可以工作:

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

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

6

如果你正在使用XP Pro,这将提供更可靠的时间戳。

@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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接