在 powershell 里面
echo 'echo 123' > test.bat
echo 'pause' >> test.bat
生成的的脚本双击之后一闪而过。
而换成普通的 CMD 窗口
echo 'echo 123' > test1.bat
echo 'pause' >> test.bat
生成的脚本可以双击执行。
在 powershell 里面
echo 'echo 123' > test.bat
echo 'pause' >> test.bat
生成的的脚本双击之后一闪而过。
而换成普通的 CMD 窗口
echo 'echo 123' > test1.bat
echo 'pause' >> test.bat
生成的脚本可以双击执行。
因为编码的问题,因为 powershell 的默认编码是 UTF-16,CMD 不认识这个,所以运行的时候会有问题。
为此,解决办法就有 2 个。
1、把文件转换为 UTF-8 无 BOM 格式。
可以手动使用 VS Code 之类的工具进行转换,也可以找个网站在线转换。
2、调整 powershell 的
>
因为,在 powershell 里面>
实际上是 Out-File 的别名,所以你也可以像下面这也,指定编码为 ASCII,我当前测试是 Windows 10,使用 utf8 出来的是有 BOM 的,所以也会有问题,但是文档中说有 utf8NoBOM ,我这边暂时不可用,如果你的脚本没有中文输出,可以尝试一下。3、你还可以考虑修改 powershell 的默认编码(不建议)