Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 用空格为目录中的每一行批处理_Batch File_Dos_Spaces - Fatal编程技术网

Batch file 用空格为目录中的每一行批处理

Batch file 用空格为目录中的每一行批处理,batch-file,dos,spaces,Batch File,Dos,Spaces,我正在尝试创建一个批处理文件,将主文件夹中的所有文件夹压缩为与子文件夹同名的单个zip文件 文件夹结构示例: 因此,在主文件夹中,拉链需要与子文件夹的名称和内容完全相同 我现在拥有的代码发布在下面。出现此问题的原因是,我必须引用路径名,因为路径名包含空格,因此第4行中的%CD%\folders.txt“不会解析为文件名,而是作为一般输入字符串。我怎样才能让它工作 另外,我不需要一个临时文件夹.txt,这只是最接近预期的工作 set zip="P:\Programma's\x64\WINRAR\

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

文件夹结构示例:

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

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

另外,我不需要一个临时文件夹.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

可能使用变量来存储它:

set cdfolder="%CD%\folders.txt"
然后在你需要的地方使用它

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

这就是克服文件名错误所需要的全部。非常感谢!