尝试编写批处理脚本以使用文件夹中的PDF名称自动读取PDF并从中生成3个输入文件。
文件夹中的PDF文件名将采用以下格式:
1-2345-600B FLAT 3MM MK7 MINE.pdf
7-8910-100C FLAT 3MM MK7 MINE.pdf
我想以这种格式创建一个输入文件:
Part ID|Rev ID|Part Name|Dataset|datasetname|type|ref
示例:
1-2345-600|B|FLAT 3MM MK7 MINE|/Foldername/PDF/1-2345-600B FLAT 3MM MK7 MINE.pdf|1-2345-600B FLAT 3MM MK7 MINE|PDF|PDF_Reference
7-8910-100|C|FLAT 3MM MK7 MINE|/Foldername/PDF/7-8910-100C FLAT 3MM MK7 MINE.pdf|7-8910-100C FLAT 3MM MK7 MINE.pdf|PDF|PDF_Reference
在这里,我想在文本文件中单独获取PDF文件名,然后将其解析为在另一个批处理文件中以上述格式输出。但是,当考虑到使用PDF文件名创建具有上述不同解析选项的行的复杂性时,可能很难。 请以更简单的方式帮助您进行编码。我是批处理文件编码世界的新手。
答案 0 :(得分:0)
它并不复杂。但我想,对于一个新手来说,很难找到正确的语法。
第一步是分析输入数据。幸运的是,看起来,它们都具有相同的格式和相同的长度。所以你可以分成" PartRevision"和"休息"。
由于修订版只是PartRevision的最后一个字母,因此很容易拆分。 剩下的就是"只有"选择合适的变量修饰符。
由于管道符号(^
)在批处理中具有特殊功能,您必须使用插入符号@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims= " %%a in ('dir /s /b *.pdf') do (
set part=%%~na
echo !part:~0,-1!^|!part:~-1!^|%%~nb^|%%~dpna %%b^|%%~na %%~nb^|PDF^|PDF_Reference
)
)来转义它们
for /?
请参阅set /?
,!variable!
代表margin-top:-100px
- 语法,请参阅here