REM timestamped name of file
set PREFIX=LINE_
set SAVESTAMP=%PREFIX%%DATE:/=-%_%TIME::=-%
set SAVESTAMP=%SAVESTAMP: =%
set SAVESTAMP=%SAVESTAMP:,=.%.txt
echo %SAVESTAMP%
REM In H.txt, for each line grab the text after delimiter ':' and send it to file
for /f "tokens=2 delims=:" %%a in ('type D.txt^|find ":"') do (
set line=%%a
REM#1
echo %line% >> %SAVESTAMP%
)
REM#2
REM echo %line% >> %SAVESTAMP% ---This output one line
当我使用REM#1
并在echo
循环之外注释第二个for
时,没有创建文件。
但是当我使用REM#2
并且不使用REM#1 echo
时,会创建一行文件。
大多数情况下,文件会写入多行。
所以我希望这在for循环中工作。
D.txt
line1:sample1
line2:sample2
line3:sample3
line4:sample4
输出应该是: 的 Line_Date_TimeStamp.txt
sample1
sample2
sample3
sample4
答案 0 :(得分:0)
两个问题:
首先,rem
和文本之间必须有一个分隔符(如空格),否则会尝试查找并执行名为rem#1.(bat,exe etc.)
的可执行文件。
其次,当您试图显示在delayed expansion
块中正在修改的变量(line
)的值时,您需要搜索SO for
。