在powershell中使用外部可执行文件

时间:2014-08-12 17:54:14

标签: windows powershell command external

我是编程新手并需要一些帮助..我需要编写一个PowerShell脚本,作为其中的一部分,它需要运行一个外部可执行文件...但是我遇到的问题是脚本没有要求参数和即使我通过一个,它似乎只是等待而不问任何东西..所以这里是有问题的部分

#Part of my script
$app = "D:\project1\files\vshadow.exe"
$arg1 = "-da"
$arg2 = "Y"

& $app $arg1 $arg2v

+++++++++++++++++++++++++++++++++++++

这是我在控制台中获得的

  

PS D:\ project1 \ files> C:\用户\管理员\桌面\ test.ps1

     

VSHADOW.EXE 3.0 - 卷影复制示例客户端。   版权所有(C)2005 Microsoft Corporation。保留所有权利。

     

(选项:删除所有卷影副本)

+++++++++++++++++++++++++++++

所以.exe是使用-da标志清除卷影副本(全部清除)..但是当我从cmd.exe运行时,该步骤需要Y继续..这个

  

D:\ project1 \ files> vshadow.exe -da

     

VSHADOW.EXE 3.0 - 卷影复制示例客户端。   版权所有(C)2005 Microsoft Corporation。保留所有权利。

     

(选项:删除所有卷影副本)   这将删除系统中的所有卷影副本。你确定吗? [Y / N]

++++++++++++++++++++++++++++++

任何帮助将不胜感激

谢谢, 汤姆

2 个答案:

答案 0 :(得分:0)

doc表示-da需要确认,但不提供覆盖方式。您可以输入用户输入...试试这个 -

echo 'y' | cmd.exe /c vshadow.exe -da

答案 1 :(得分:0)

我不知道PowerShell能够像Expect脚本那样行事。

也就是说,您可以绕过-da选项的用户输入要求。使用vshadow查询获取所有副本,然后通过管道传递到foreach循环以执行vshadow delete(-ds)。

相关问题