如何从PowerShell写入有效的.CMD(或.BAT)文件?我正在使用>运算符,但cmd.exe无法执行我创建的文件.
以下是我正在尝试做的一个例子.[为了比较,我也写了一个.CMD文件CMD.EXE并显示它工作正常]
在PowerShell中:
PS C:\> "@set BAR=1" > bar.cmd // write to a .CMD file from PowerShell
Run Code Online (Sandbox Code Playgroud)
在CMD.EXE中:
C:\> echo @set FOO=1 > foo.cmd // write to a .CMD file from CMD.EXE
C:\> type foo.cmd // display .CMD file written from CMD.EXE
@set FOO=1 // PASS
C:\> type bar.cmd // display .CMD file written from PowerShell
@set BAR=1 // PASS
C:\> call foo.cmd // invoke .CMD file written from CMD.EXE
C:\> echo %FOO%
1 // PASS
C:\> call bar.cmd // invoke .CMD file written from PowerShell
C:\> ?@ // FAIL
'?@' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
我怀疑bar.cmd是用callin 不支持的编码创建的CMD.EXE.[虽然注意type显示bar.cmd当前编码的内容没有问题.]
什么是编程写入从PowerShell中.cmd文件,使得它可以从被调用的正确方法CMD.EXE有call?
Jas*_*her 18
Set-Content bar.cmd '@set BAR=1' -Encoding ASCII
Run Code Online (Sandbox Code Playgroud)
PowerShell默认为UTF-16 LE.
精简版.
sc bar.cmd '@set BAR=1' -en ASCII
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9393 次 |
| 最近记录: |