2012-09-17 35 views
0

我一直在嘗試連接字符串與文本文件的行,但是我的代碼有些問題,並且我相信是我正在使用的修改週期。如果有人能幫助我,我會非常感激。如何連接字符串與文本文件的行

我的代碼是:

@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> 

因此,如果任何人對什麼是錯,請讓我知道的線索。

問候

-Victor-

回答

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! 
) 
相關問題