0

我一直在尝试将字符串与文本文件的行连接起来,但我的代码出了点问题,我相信我在 For 循环中使用的 agruments。如果有人可以帮助我,我将不胜感激。

我的代码是:

@echo off
set "input=C:\Users\123\Desktop\List.txt"
for /f "usebackq tokens=*" %%F in ("%input%") do (
        set "str1=C:\some directory\"
    set "str2=%%~F"
    set "str3=.pdf"
    set "str4=%str1%%str2%%str3%"
    echo.%str4%
)

文本文件类似于:

121122
122233
123344
124455

但我只得到一个错误的答案,我必须运行它 3 次才能获得真正的结果,这是错误的,前两个是空格,第三个返回文本文件中的最后一行,但重复 n 次, n 是文本文件的行数。

结果:

C:\Users\123\Desktop>concatenate.bat





C:\Users\123\Desktop>concatenate.bat





C:\Users\123\Desktop>concatenate.bat
C:\some directory\124455.pdf
C:\some directory\124455.pdf
C:\some directory\124455.pdf
C:\some directory\124455.pdf
C:\some directory\124455.pdf

C:\Users\123\Desktop>

所以,如果有人知道出了什么问题,请告诉我。

问候

-胜利者-

4

1 回答 1

0

您将需要启用延迟扩展功能。这是必需的,因为在FOR命令块中,您需要引用已修改的变量。

@echo off
setlocal enabledelayedexpansion
set "input=C:\Users\123\Desktop\List.txt"
for /f "usebackq tokens=*" %%F in ("%input%") do (
    set "str1=C:\some directory\"
    set "str2=%%~F"
    set "str3=.pdf"
    set "str4=!str1!!str2!!str3!!"
    echo. !str4!
)
于 2012-09-17T11:54:15.980 回答