2017-05-31 69 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

相关问题