Win cmd rar每个文件分别保留名称,空格

时间:2014-08-13 12:21:15

标签: windows batch-file cmd rar winrar

我正在使用Windows,我有一个巨大的文件列表

something nextthing.ext
other something.ext
banana apple.ext

我正在尝试生成以下内容:

something nextthing.rar
other something.rar
banana apple.rar

我做了一些研究,但我找不到怎么做。我知道WinRAR有一个内置的方法来做到这一点,但它不会让我保留名字。它只是将它们重命名为Foldername1.rar,Foldername2.rar ....

我尝试使用以下命令行:

for /f "delims=|" %f in ('dir /b "C:\Users\Adam\ Desktop\Files"') do rar a %f *.rar

但是,它不会生成所有文件,而且它们似乎被错误地命名......

例如,应该banana apple.rar成为banana.rarapple.rar

2 个答案:

答案 0 :(得分:1)

好的,找到了......

@echo off &setlocal
set "path=C:\Program Files\WinRAR;%path%"

:indiv
echo(
echo(
FOR %%i IN (*) do (
    rar a "%%~ni.rar" "%%~i" || echo Error building archive!
)

答案 1 :(得分:1)

您可以在命令提示符窗口中使用将目录中的每个文件压缩到单独的存档中:

for /f "delims=" %f in ('dir "%USERPROFILE%\Desktop\Files" /B /A-D') do "%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idcdp "%~nf.rar" "%f"

重要的是%f周围的双引号,因为某些文件名包含1个或多个空格,在这种情况下,文件名必须用双引号括起来。

以上命令用于批处理文件:

@echo off
for /f "delims=" %%f in ('dir "%USERPROFILE%\Desktop\Files" /B /A-D') do "%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idcdp "%%~nf.rar" "%%f"

此命令因/A-D而忽略子文件夹。它仅压缩当前用户桌面上目录Files中的每个文件。