通过文件夹批处理文件循环

时间:2020-03-20 07:32:57

标签: for-loop batch-file subdirectory

我有一个批处理文件,当pdf文档与.bat文件位于同一目录/文件夹中时,该文件可以完美运行。我现在遇到的问题是,我还需要它在最近添加到主文件夹中的子文件夹上运行。

这是我的代码:

@ECHO OFF

setlocal EnableDelayedExpansion
md out
for /f %%G in ('dir /b "*.pdf"') do (
    for /f "delims=$ tokens=1*" %%H in ("%%~nG") do set "partial_filename=%%~I"
    call:_pwgen passwd
    set FULLNAME=%%G
    set ENDTEXT=!FULLNAME:*$=!
    call set TRIMMEDNAME=%%FULLNAME:!ENDTEXT!=%%
    pdftk %%G output out/!TRIMMEDNAME:~0,-1!.pdf user_pw !passwd!
)

goto :EOF

:_pwgen passwd
setlocal ENABLEEXTENSIONS
set passwd=%~1
set _count=0:_loop
set /a _count+=1
set passwd=!partial_filename!
endlocal&set %~1=%passwd%

GOTO:EOF

我尝试将第一个替换为

set cd="C:\Users\Folder name"
for /r !cd! %%G in ("*.pdf") do (

但是子文件夹中有空格,因此.bat文件不会生成任何东西。

任何帮助都会很棒。

谢谢!

0 个答案:

没有答案