Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date Batch file可通过将当前日期/时间添加到文件名的开头来重命名文件夹中的所有文件_Date_Time_Batch File_Rename - Fatal编程技术网

Date Batch file可通过将当前日期/时间添加到文件名的开头来重命名文件夹中的所有文件

Date Batch file可通过将当前日期/时间添加到文件名的开头来重命名文件夹中的所有文件,date,time,batch-file,rename,Date,Time,Batch File,Rename,我似乎不明白批处理文件是如何将yyyy/mo/dd/hh/mm/ss添加到文件名的开头的。(使用Windows 7)精确到秒是很重要的 它实际上不必是批处理文件,只要是一个小程序,只要我将文件添加到文件夹中,目录监视器就可以执行该程序: 我只认为批处理文件将是最简单和最有效的方法,但任何其他建议都是受欢迎的 我处理许多具有重叠文件名的按顺序编号的文件,每当我将它们添加到文件夹中时,我需要一种快速的方法来重命名它们,这样就不会有任何具有相同名称的文件,但它们仍将按顺序排列。这就是我将当前日期和时间

我似乎不明白批处理文件是如何将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,然后第二天再看。批处理速度不快。