繁体   English   中英

output 的源文件名

[英]Source file name for output

我正在尝试使用 PDFtk 创建一个批处理文件,以使用源文件名(可能不同)作为输入文件名将特定目录中的合并文件突发到 output 文件夹。 例如

源目录:- D:\Temp\IN 目标目录:- D:\Temp\OUT 文件名:- abcdefgh.pdf(可能不同) 所需的 output 文件名:- abcdefgh-001.pdf、abcdefgh-002.pdf 等等

我的批处理文件将位于 D:\Script PDFtk.exe 位于 D:\PDFtk Server\bin

我试了一整天,但无法获得 output 的输入文件名。有人能帮忙吗

我现有的程序:-

CD D:\Temp\IN

for /f "tokens=*" %%A in ('dir /b D:\Temp\IN\*.pdf') do (

set prefix=%%~ni )

set outname=%prefix%-%%03d-00.pdf 

path D:\PDFtk Server\bin

pdftk.exe D:\Temp\IN\%prefix% burst output D:\Temp\OUT\%outname%

exit

您的方法存在多个错误,第一个错误是在这种情况下您需要本地延迟扩展。 对于最初的% ,稍后将其用作! .

CD D:\Temp\IN

这没关系,但如果它允许 /Drive 转移到“引用的驱动器文件夹”会更好(注意输入文件夹在这种情况下不能与使用这种方法的 output 文件夹相同,最好是 output 是你所做的兄弟姐妹或使用共同的父母更好。)

CD /D "D:\Temp\IN"

for /f "tokens=*" %%A in ('dir /b D:\Temp\IN\*.pdf') do (

set prefix=%%~ni )

您混淆了 %%A 和 %%i 它们应该是相同的,在这种情况下不需要tokens ,但是 usebackq 用于奇数文件名并添加引号,不需要当前目录,并且)太早了。

setlocal enabledelayedexpansion  
for /f "usebackq delims=="  %%A in (`dir /b *.pdf`) do (
set "prefix=%%~nA"

下一部分

set outname=%prefix%-%%03d-00.pdf  

再次最佳引用和需要使用扩展
set "outname=.prefix!-%%03d-00.pdf"

path D:\PDFtk Server\bin

pdftk.exe D:\Temp\IN\%prefix% burst output D:\Temp\OUT\%outname%

如果合并并引用会更好你不需要使用当前目录

"D:\PDFtk Server\bin\pdftk.exe" ".prefix:.pdf" burst output "D:\Temp\OUT\!outname!"

终端支架在这里
)

exit

是多余的

所以总而言之

CD /D "D:\Temp\IN"
setlocal enabledelayedexpansion
for /f "usebackq delims==" %%A in (`dir /b *.pdf`) do (
set "prefix=%%~nA"
set "outname=!prefix!-%%03d-00.pdf" 
"D:\PDFtk Server\bin\pdftk.exe" "!prefix!.pdf" burst output "D:\Temp\OUT\!outname!"
)

整个命令可以简化为一行,但要显示可以进行切割的位置
尝试这个

CD /D "D:\Temp"
for /f "usebackq delims==" %%A in (`dir /b IN\*.pdf`) do (
"D:\PDFtk Server\bin\pdftk.exe" "IN\%%~A" burst output "OUT\%%~nA-%%03d-00.pdf"
)

usebackq delims==的需要是因为后来的字符问题,如filename (1).pdf

所以我们不能缩短太多

CD /D "D:\Temp" & for /f "usebackq delims==" %%A in (`dir /b IN\*.pdf`) do ("D:\PDFtk Server\bin\pdftk.exe" "IN\%%~A" burst output "OUT\%%~nA-%%03d-00.pdf")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM