这是我的情况。我有几百个文件夹(在Windows XP下), ,每个文件夹都包含几个.jpgs文件。当我不小心选择了其中一个文件夹的 重命名过程中的所有文件夹时,所有文件夹的名称全部变成了 。DOS批处理脚本 - 将目录重命名为其最近文件的日期
什么我设置了要做的就是写一个DOS批处理脚本,将 迭代通过每个文件夹,确定目录&内 最新文件的修改日期的文件夹,该日期重命名 YYYY-MM -DD格式。因此:
Directory of C:\Work_Area\Messed_up_dir_name
07/11/2012 10:01 AM <DIR>
07/11/2012 10:01 AM <DIR>
03/10/2008 11:00 AM 176,640 image1.jpg
08/07/2007 02:27 PM 25,088 image2.jpg
04/12/2007 04:52 PM 132,608 image3.jpg
02/06/2007 06:11 PM 61,086 image4.jpg
变为"C:\Work_Area\2008-03-10\"
这是我至今写...
@echo off
REM ITERATE THROUGH EACH DIRECTORY
FOR /F "DELIMS==" %%d in ('DIR "%ROOT%" /AD /B') DO (
ECHO %%d
cd %%d
REM DETERMINE NEWEST FILE
FOR /F %%a in ('DIR /O:-D /B') DO @ECHO %%~ta
cd ..
REM echo Newest=%Newest%
REM move "%%f" "%Newest%"
pause
)
显然,在日期的斜线将需要在更改为另一个字符 为了这个成功。如果有人可以帮我解决这个问题, 将不胜感激!
如果2个兄弟文件夹具有相同的最近修改文件日期,会发生什么情况?这两个文件夹不能同时重命名。另外,你的日期格式是mm/dd/yyyy? – dbenham 2012-07-11 22:02:39
我忘了提及我收录的代码以MM/DD/YYYY HH:MM AM/PM格式回显日期。将每个文件夹重命名为MM-DD-YYYY HH:MM AM格式都可以。在这种特殊情况下,任何文件夹中都没有重复文件,因此重复文件夹名称的风险很低。 – Garbunkel 2012-07-12 14:22:06
':'在文件或文件夹名称中无效,因此也必须更改(可能是'-'或'.')。重复文件名的存在或不存在对从上次修改时间戳严格派生的重复文件夹名称的风险没有影响。 – dbenham 2012-07-12 15:03:28