簡體   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