【发布时间】:2013-12-10 01:58:31
【问题描述】:
我是脚本新手,请帮助我, 我有批处理文件
1- 查看文件名中的前 8 个字符,创建这些文件并将其移动到以前 8 个字符作为文件夹名称的新文件夹。
2- 然后查看在步骤 1 中为接下来的四个字符系列(9、10、11、12)创建的文件夹,并创建并移动到另一个子文件夹,并将接下来的 4 个字符作为文件夹名称。
3- 然后查看在步骤 2 中创建的文件夹,了解每个文件的扩展名,然后创建并移动到以扩展名作为文件夹名称的新文件夹。
例如,我的文件看起来像这样
ABCEFGHI0703xyz.pdf
STUVWXYZ0805xyz.pptx
Move to folder
ABCEFGHI\0703\PDF
STUVWXYZ\0805\PPTX
请记住,前 8 个字符是随机的,接下来的 4 个字符是年和月,以及 9 种扩展名。
我正在使用这个批处理脚本来创建这些文件夹:-
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=C:\2BW00885"
SET "destdir=C:\2BW00885"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*" '
) DO (
SET name=%%~na
SET ext=%%~xa
SET name=!name:~0,8!\!name:~8,4!\!ext:~1!
MD "!name!" 2>nul
MOVE "%sourcedir%\%%a" "!name!\" >nul
)
GOTO :EOF
这将导致创建许多子文件夹文件夹,如 doc、pdf、txt……
现在我想创建一个存档脚本来搜索目标文件夹中任何名为 pdf 的文件夹并将其存档。我正在使用此命令在 DOS 中存档:
winrar A -ep1 -df "C:\ ABCEFGHI\0703\PDF" " C:\ ABCEFGHI\0703\PDF\*"
-df 删除父文件夹,-ep1 和 * 忽略文件夹目录,只是其中的内容。
我正在考虑添加这个
FOR /F "DELIMS==" %%D in ('search for destination folder) DO (
"C:\Program Files\WinRAR\WinRAR.EXE" A -ep1 -df "destination.rar" "%%D"
)
问题是目标文件夹目录是未知且随机的,具体取决于它将创建它们的第一个脚本,我需要以这样的方式编写脚本,以便搜索任何名为 pdf 的文件夹的所有目标文件夹并将其存档。
非常感谢任何帮助。
阿卜杜勒
【问题讨论】:
-
老兄,你已经有一个帖子问过这个问题...stackoverflow.com/questions/20466507/…
标签: batch-file winrar