【发布时间】:2017-05-17 11:39:47
【问题描述】:
我有两个 .txt 文件。一个包含数字,另一个包含文件路径。我想将这两个文件合并为 .csv。该组合基于数字(来自 nrs.txt)是否在文件路径(nodups.txt)的字符串中。
现在我有以下代码:
@setlocal enableextensions enabledelayedexpansion
for /F %a IN (Output\nrs.txt) DO (
SET "nrs=%a"
for /F %b IN (Output\nodups.txt) DO (
SET "pathstring=%b"
SET csvdelim=,
IF NOT x!pathstring:%nrs%=""!==x%pathstring% %nrs%,%pathstring%>>new2017.txt
)
)
@endlocal
但是,我一直遇到以下代码问题:
- 路径字符串似乎永远不会被设置。 (当我在没有 if 语句的情况下运行代码时,
nrs变量被设置但the pathstring is set to %b)。我已经在这里看到了很多可能的解决方案,但似乎没有一个对我有用(设置像!var!这样的变量并使用usebackq)。 - 第二个 for 循环中的 IF 语句收到以下错误消息
=""!==x%pathstring% was unexpected at this time。=""应该删除 nr。从路径(如果它在那里)。当我用其他东西替换“”时,它仍然不起作用。
文件内容为:
文件 nrs.txt:
12345
12245
16532
nodubs.txt:
C:\tmp\PDF_16532_20170405.pdf
C:\tmp\PDF_1234AB_20170405.pdf
C:\tmp\PDF_12345_20170506.pdf
期望的输出:
12345, C:\tmp\PDF_12345_20170506.pdf
16532, C:\tmp\PDF_16532_20170405.pdf
我真的希望有人可以帮助我解决这个问题!
【问题讨论】:
标签: batch-file for-loop nested