这是我的情况。我有几百个文件夹(在 Windows XP 下),每个文件夹都包含几个 .jpg。当我在重命名其中一个文件夹的过程中不小心选择了所有文件夹时,文件夹的名称都搞砸了。
我要做的是编写一个 DOS Batch 脚本,它将遍历每个文件夹,确定目录中最新文件的修改日期并将文件夹重命名为 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
)
显然,日期中的斜杠需要更改为另一个字符才能成功。如果有人可以帮助我解决这个问题,将不胜感激!