【问题标题】:script to search and archive using winrar使用winrar搜索和存档的脚本
【发布时间】: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 的文件夹的所有目标文件夹并将其存档。

非常感谢任何帮助。

阿卜杜勒

【问题讨论】:

标签: batch-file winrar


【解决方案1】:

看起来有点眼熟的代码。

FOR /f "delims=" %%a IN (
 'dir /b /s /ad "%sourcedir%\pdf" '
 ) DO (
 ECHO winrar A -ep1 -df "%%a\destination.rar" "%%a\*"  
)

应该适合你。我不熟悉winrar 语法,所以我将把这部分留给你......

如果您将答案标记为已接受,如果他们解决了您的问题,我们将不胜感激。


编辑:对于多个扩展:

For %%x in (pdf xls txt) do (
 ECHO winrar A -ep1 -df "%%x\destination.rar" "%%x\*"  
)

但是,正如我所说,我不熟悉 winrar 语法或您尝试归档在哪个目录中的内容。

【讨论】:

  • 顶部(非常黑)栏 HELP、“帮助中心”、“查看更多”在询问、“当有人回答我的问题时我应该怎么做”——毫无疑问还有其他感兴趣的问题区域也。
  • 确实。我可能一直无法接受答案,也可能是因为我使用的是移动网站..
  • 感谢完美,我正在使用此脚本搜索和存档文件, FOR /f "delims=" %%a IN ( 'dir /b /s /ad "%sourcedir%\PDF ' ) DO ( "C:\Program Files (x86)\WinRAR\WinRAR.exe" A -ep1 "%%a\PDF.rar" "%%a*" ) 但我对所有文件重复上述相同的行PDF、XLS 和 TXT 等类型。可以在同一个命令中使用“PDF”“XLS”,而不必为每种文件类型重复,如果是这样的话怎么办?只是尽量保持整洁。
猜你喜欢
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多