11
如何从PowerShell写入有效的.CMD(或.BAT)文件?我使用>
运营商,但cmd.exe
无法执行我创建的文件。如何从PowerShell写入.CMD文件?
下面是我想要做的一个例子。 [为了比较,我也从CMD.EXE
写入.cmd文件,并表明它工作正常]
在PowerShell中:
PS C:\> "@set BAR=1" > bar.cmd // write to a .CMD file from PowerShell
在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.
我怀疑bar.cmd
正在使用不支持call
的编码在CMD.EXE
中创建。 [虽然公告称type
在其当前的编码显示的bar.cmd
内容没有问题。]
什么是编程写入从PowerShell中.cmd文件,使得它可以从CMD.EXE
与call
被调用的正确方法?
这样做的窍门,谢谢! – jwfearn 2011-03-13 04:03:12
或者您可以使用Out-File例如:''@set BAR = 1'| Out-File bar.cmd -enc ascii' – 2011-03-13 04:07:19
得爱管,谢谢Keith! – jwfearn 2011-03-13 04:24:40