带有空格的目录中每行的批处理

时间:2015-02-26 14:24:39

标签: batch-file dos spaces

我试图创建一个批处理文件,将主文件夹中的所有文件夹压缩为与子文件夹同名的单个zip文件。

示例文件夹结构:

Folder Structure

因此,在主文件夹中,拉链需要显示与子文件夹完全相同的名称和内容。

我现在的代码发布在下面。出现问题是因为我必须引用路径名,因为它们包含空格,因此第4行中的"%CD%\folders.txt"不会被解析为文件名,而是作为litteral输入字符串。我怎样才能让它发挥作用?

P.S。我不需要临时的folders.txt,这最接近按预期工作。

set zip="P:\Programma's\x64\WINRAR\rar.exe" a -r -u -ep1
dir "%CD%" /d /ad /s /b > "%CD%\folders.txt"
set /a COUNT=0
pause
for /f "usebackq delims=|" %%f in ("%CD%\folders.txt") do (
echo %%f
%zip% "%CD%\%%~nf.zip" %%f\* >nul
set /a COUNT+=1)
del "%CD%\folders.txt"
echo.
echo ....................................................
echo.
echo Compressed %COUNT% folders
pause

1 个答案:

答案 0 :(得分:2)

也许使用变量来存储它:

set cdfolder="%CD%\folders.txt"

然后在您需要的任何地方使用它

...
dir "%CD%" /d /ad /s /b > %cdfolder%
...