我想从 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
cd newfolder/
mget xxxx*.csv
并且错过“退出”字。
我该怎么做?
提前致谢
答案 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 2
:2
表示ErrorStream,此处为空,因此您的文件根本不会收到任何内容,但STDOUT仍会进入屏幕。
每当您的行以数字结尾时,最好使用不同的语法:
>>test2.bat echo exit 0
或
(echo exit 0)>>test2.bat
如果你必须写几行,你甚至可以一次编写所有这些行(而不是分别打开每个文件的文件,写行,关闭文件再打开文件以写下一行)< / p>
>test2.bat (
echo %st1%
echo %st2%
echo %st3%
)