我从失败的硬盘驱动器中恢复了大量图片。恢复程序将具有新文件名的所有文件转储到文件夹中。当文件夹达到特定大小时,它会创建一个新文件夹。我怀疑这是为了防止文件夹中的数千个文件使Windows崩溃的问题。我留下了许多文件夹,每个文件夹中有数百张图片。
为了更加了解这一切,我发现我可以按日期和大小排序。问题是使用资源管理器手动移动文件是永远的。我想得到一个批处理文件来为我做。
尽我所能,我只是无法弄清楚FOR命令。你在这里的stackoverflow人是远远超出我的力量的天才。请帮忙!
以下是文件夹名称:
recup_dir.1
recup_dir.2
recup_dir.3 and so on...
在每个文件夹中,我想拥有以下文件夹结构:
--Possibly New
----Under .1 Meg
----.1 - 1 Meg
----1+ Meg
--Probably Already Have
----Under .1 Meg
----.1 - 1 Meg
----1+ Meg
编辑 New vs. Already Have基于文件日期。具有恢复日期的日期的文件是新的。这意味着从6月6日到更新的任何事情。任何具有较旧日期的东西可能是早期恢复尝试的一部分。
到目前为止,在.1 meg及更高文件夹中的图片数量并不多。我最终将这些全部转储到一个文件夹中。此时我甚至可以使用批处理文件。
有人会帮助我完成这件事吗?
答案 0 :(得分:0)
这是航空代码(未经测试)但可能有效。它处理e:\folder
中的文件夹,我对文件夹名称采取了一些自由。
@echo off
for /d %%a in ("e:\folder\*") do (
pushd "%%a"
md new\small new\medium new\large have\small have\medium have\large 2>nul
for %%b in (*.*) do (
echo "%%a\%%b"
for /f "tokens=1-3 delims=/ " %%c in ("%%~tb") do if %%e%%c%%d GTR 20140605 (set new=1) else (set new=)
if defined new (
if %%~zb LEQ 100000 move "%%b" new\small >nul
if %%~zb GTR 1000000 move "%%b" new\large >nul
if exist "%%b" move "%%b" new\medium >nul
) else (
if %%~zb LEQ 100000 move "%%b" have\small >nul
if %%~zb GTR 1000000 move "%%b" have\large >nul
if exist "%%b" move "%%b" have\medium >nul
)
)
popd
)
echo done
pause