批处理文件从另一个文本文件中读取输入

时间:2015-09-16 01:16:45

标签: batch-file pdf input

尝试编写批处理脚本以使用文件夹中的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文件名创建具有上述不同解析选项的行的复杂性时,可能很难。 请以更简单的方式帮助您进行编码。我是批处理文件编码世界的新手。

1 个答案:

答案 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