如何从bat文件中将“exit”字写入txt?

时间:2016-12-19 06:53:42

标签: windows batch-file echo windows-scripting

我想从 bat文件

写入 txt

我写了这段代码:

@echo off
cd C:\test_folder
set st1=cd  newfolder/
set st2=mget xxxx*.csv
set st3=exit 0
echo %st1%> test2.bat
echo %st2%>>test2.bat
echo %st3%>>test2.bat

Bu输出为(test2.bat):

cd  newfolder/
mget xxxx*.csv

并且错过“退出”字。

我该怎么做?

提前致谢

1 个答案:

答案 0 :(得分:4)

因为结果行是echo exit 0>>test2.bat - 其中0>>test2.bat尝试将echo exit的INPUT(STDIN)重定向到文件。这会导致文件的空输出和屏幕上的单词echo echo exit 1>>test2.bat会将echo exit的STDOUT(“正常”输出)重定向到文件(只是单词exit)。
更糟糕的是exit 22表示ErrorStream,此处为空,因此您的文件根本不会收到任何内容,但STDOUT仍会进入屏幕。

每当您的行以数字结尾时,最好使用不同的语法:

>>test2.bat echo exit 0

(echo exit 0)>>test2.bat

如果你必须写几行,你甚至可以一次编写所有这些行(而不是分别打开每个文件的文件,写行,关闭文件再打开文件以写下一行)< / p>

>test2.bat (
  echo %st1%
  echo %st2%
  echo %st3%
)