![](/img/trans.png)
[英]Output multiple .csv files appending the .csv file name as the source folder name with powershell
[英]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.