2017-05-31 67 views
0

我做了這樣的代碼想從文本文件中的變量的值,與其他變量串聯,並插入新的文本文件

echo on 
SET /P CONTROLSTRING_0326 = < sample.txt 
rem sample.txt has data as 00000000000000000000000000000000000002017060000000000000000 

ECHO %CONTROLSTRING_0326% 
pause 
SET CONTROL_DATE = %CONTROLSTRING_0326:~39,6% 
ECHO %CONTROL_DATE% 
PAUSE 
SET filler1="2226 0000000 00000000000 00000000000 
SET filler2= CONTROL 06.30" 
PAUSE 
SET "FINAL_CONTROL_2460 = %filler1%%CONTROL_DATE%%filler2%" 
SET FINAL_CONTROL_2460 
pause 
SET FINAL_CONTROL_2460 > new_control.txt 
PAUSE 
EXIT 

新的價值我想要的文件new_control.txt應有數據如下

2226 0000000 00000000000 00000000000 201706 CONTROL 06.30" 

但我在new_control.txt中獲取數據作爲'echo is on'。 不確定發生了什麼問題?

回答

0

的問題是,不應該有一個SET命令=之前空格字符。您創建的是名爲「CONTROL_DATE」的變量,而不是「CONTROL_DATE」。

變化

SET /P CONTROLSTRING_0326 = < sample.txt 
SET CONTROL_DATE = %CONTROLSTRING_0326:~39,6% 
SET "FINAL_CONTROL_2460 = %filler1%%CONTROL_DATE%%filler2%" 

SET /P "CONTROLSTRING_0326=" < sample.txt 
SET "CONTROL_DATE=%CONTROLSTRING_0326:~39,6%" 
SET "FINAL_CONTROL_2460=%filler1%%CONTROL_DATE%%filler2%" 
+0

感謝@lit,我能夠寫入文件,但輸出如下 「2226 0000000 00000000000 00000000000〜39,6 CONTROL 06.30」子字符串不起作用。我希望日期201706,而不是〜39,6在文件中。 SET CONTROL_DATE =%CONTROLSTRING_0326:39,6〜% 應該返回201706. – user2919579

+0

刪除或註釋掉'回聲off',看看發生了什麼。 – lit

相關問題