Date Batch file可通过将当前日期/时间添加到文件名的开头来重命名文件夹中的所有文件
我似乎不明白批处理文件是如何将yyyy/mo/dd/hh/mm/ss添加到文件名的开头的。(使用Windows 7)精确到秒是很重要的 它实际上不必是批处理文件,只要是一个小程序,只要我将文件添加到文件夹中,目录监视器就可以执行该程序: 我只认为批处理文件将是最简单和最有效的方法,但任何其他建议都是受欢迎的 我处理许多具有重叠文件名的按顺序编号的文件,每当我将它们添加到文件夹中时,我需要一种快速的方法来重命名它们,这样就不会有任何具有相同名称的文件,但它们仍将按顺序排列。这就是我将当前日期和时间添加到文件名开头的想法,也是秒之所以重要的原因,因为我可以在一分钟内轻松地将多个集添加到文件夹中,但肯定不会在一秒钟内。如果批处理文件可以忽略文件扩展名,只需将当前日期/时间添加到添加到文件夹的任何文件的开头,这将是理想的选择。Date Batch file可通过将当前日期/时间添加到文件名的开头来重命名文件夹中的所有文件,date,time,batch-file,rename,Date,Time,Batch File,Rename,我似乎不明白批处理文件是如何将yyyy/mo/dd/hh/mm/ss添加到文件名的开头的。(使用Windows 7)精确到秒是很重要的 它实际上不必是批处理文件,只要是一个小程序,只要我将文件添加到文件夹中,目录监视器就可以执行该程序: 我只认为批处理文件将是最简单和最有效的方法,但任何其他建议都是受欢迎的 我处理许多具有重叠文件名的按顺序编号的文件,每当我将它们添加到文件夹中时,我需要一种快速的方法来重命名它们,这样就不会有任何具有相同名称的文件,但它们仍将按顺序排列。这就是我将当前日期和时间
@ECHO off
@ECHO off
SETLOCAL
IF [%1] NEQ [] goto s_start
:: Author - Simon Sheppard, July 2003
:: Tested for Windows NT, 2K, XP
ECHO STAMPME.cmd
ECHO REName a file with the DATE/Time
ECHO.
ECHO SYNTAX
ECHO STAMPME TestFile.txt
ECHO.
ECHO STAMPME "Test File.txt"
ECHO.
ECHO STAMPME "c:\docs\Test File.txt"
ECHO.
ECHO In a batch file use CALL STAMPME ...
:: To change the filename format just change around the last line below
GOTO :eof
:s_start
SET _file=%~n1%
SET _pathname=%~f1%
SET _ext=%~x1%
::Get the date
:: note ISO 8601 date format would require 4 digit YYYY Year)
FOR /f "tokens=6-8 delims=/ " %%G IN ('NET TIME \\%computername%') DO (
SET _mm=%%G
SET _dd=%%H
SET _yy=%%I
)
:: Get the time
FOR /f "tokens=2-4 delims=:." %%G IN ('cmd /c "time<nul"') DO (
SET _hr=%%G
SET _min=%%H
SET _sec=%%I
GOTO :done
)
:done
ECHO Today is Year: [%_yy%] Month: [%_mm%] Day: [%_dd%]
ECHO The time is: [%_hr%]:[%_min%]:[%_sec%]
REN "%_pathname%" "%_hr%-%_min%-%_sec%@%_file%%_ext%"
SETLOCAL
如果[%1]NEQ[]转到s_启动
::作者——西蒙·谢泼德,2003年7月
::针对Windows NT、2K、XP进行测试
ECHO STAMPME.cmd
ECHO使用日期/时间重命名文件
回声。
回声语法
ECHO STAMPME TestFile.txt
回声。
ECHO STAMPME“Test File.txt”
回声。
ECHO STAMPME“c:\docs\Test File.txt”
回声。
在批处理文件中使用调用STAMPME。。。
::要更改文件名格式,只需围绕下面的最后一行进行更改
后藤:eof
:s_开始
设置_文件=%~n1%
集合_路径名=%~f1%
集合_ext=%~x1%
::获取日期
::注ISO 8601日期格式需要4位YYYY年)
对于/f“tokens=6-8 delims=/”%%G IN('NET TIME\\%computername%')DO(
设置_mm=%%G
设置_dd=%%H
设置_yy=%%I
)
当前位置获取时间
对于/f“tokens=2-4 delims=:。”%%G IN('cmd/c“时间@ECHO off
SETLOCAL
如果[%1]NEQ[]转到s_启动
::作者——西蒙·谢泼德,2003年7月
::针对Windows NT、2K、XP进行测试
ECHO STAMPME.cmd
ECHO使用日期/时间重命名文件
回声。
回声语法
ECHO STAMPME TestFile.txt
回声。
ECHO STAMPME“Test File.txt”
回声。
ECHO STAMPME“c:\docs\Test File.txt”
回声。
在批处理文件中使用调用STAMPME。。。
::要更改文件名格式,只需围绕下面的最后一行进行更改
后藤:eof
:s_开始
设置_文件=%~n1%
集合_路径名=%~f1%
集合_ext=%~x1%
::获取日期
::注ISO 8601日期格式需要4位YYYY年)
对于/f“tokens=6-8 delims=/”%%G IN('NET TIME\\%computername%')DO(
设置_mm=%%G
设置_dd=%%H
设置_yy=%%I
)
当前位置获取时间
对于/f“tokens=2-4 delims=:。”%%G IN('cmd/c“time我更喜欢不依赖于本地设置的解决方案(wmic提供的格式始终相同):
我更喜欢不依赖于本地设置的解决方案(wmic提供的格式始终相同):
此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') 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%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
:: this line will rename the files in the current folder which haven't already
:: been renamed by checking for the fullstamp format at the start of the line
:: but it will skip this batch file
for /f "delims=" %%a in ('dir /b /a-d ^|findstr /v "^[0-9]*-[0-9]*-[0-9]*_[0-9]*-[0-9]*-[0-9]*" ') do if /i not "%%a"=="%~nx0" ren "%%a" "%fullstamp% - %%a"
pause
此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') 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%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
:: this line will rename the files in the current folder which haven't already
:: been renamed by checking for the fullstamp format at the start of the line
:: but it will skip this batch file
for /f "delims=" %%a in ('dir /b /a-d ^|findstr /v "^[0-9]*-[0-9]*-[0-9]*_[0-9]*-[0-9]*-[0-9]*" ') do if /i not "%%a"=="%~nx0" ren "%%a" "%fullstamp% - %%a"
pause
我似乎不明白批处理文件是如何将yyyy/mo/dd/hh/mm/ss添加到文件名的开头的。
但您没有任何批处理文件???可能您的意思是您不知道如何编写批处理文件来实现这一点我似乎不明白批处理文件是如何将yyy/mo/dd/hh/mm/ss添加到文件名的开头的。
但您没有ny批处理文件???可能你的意思是你不知道如何编写批处理文件来实现这一点,这也是一个很小的错误日期/时间的可能性,因为它们是在不同的时间得到的:就在午夜之前,你可以得到23:59,然后在第二天阅读。批处理速度不是很快。还有一个很小的错误日期/时间的可能性,因为它们是在不同的时间得到的s:就在午夜前,你们可以得到23:59,然后第二天再看。批处理速度不快。