繁体   English   中英

在Powershell脚本中运行.bat而不打开任何窗口

[英]running .bat in powershell script without opening any windows

我编写了一个PowerShell脚本,该脚本将解释命令的邮件正文,并创建一个.bat文件以执行找到的突击队。 该脚本可以工作,但是一个大问题是,每当执行.bat文件时,命令提示符窗口就会快速快速地闪烁在屏幕上。 我想知道是否有可能防止这种情况的发生?

我的代码:

$m.Body | Out-File cmd.bat -Encoding ascii -Append
.\cmd.bat | Out-File results.txt

我必须设置任何属性命令吗? 谢谢。

答案和信息可以在这里找到。

如果链接失效,从那里开始,选定的答案:

将“ testing.bat”替换为批处理文件的名称后,将以下内容另存为wscript,例如hidecmd.vbs。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

oShell.Run的第二个参数是intWindowStyle值,该值指示程序窗口的外观,零值用于隐藏窗口。

参考在这里http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx

我在撰写本文时意识到这个问题已有2年多的历史了,但是仍然没有官方的答案。 尽管我对PowerShell非常陌生,但我认为与使用vbscript或COM相比,我对Powershell的回答更纯正。

使用调用命令:

Invoke-Command {cmd.exe /c cmd.bat} | Out-File results.txt

这应该够了吧。 这将外壳到cmd.exe,并且/ c将在完成时自行终止外壳。 它将在当前shell中运行,因此不会打开新窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM