我是编程新手并需要一些帮助..我需要编写一个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]
++++++++++++++++++++++++++++++
任何帮助将不胜感激
谢谢, 汤姆
答案 0 :(得分:0)
其doc表示-da
需要确认,但不提供覆盖方式。您可以输入用户输入...试试这个 -
echo 'y' | cmd.exe /c vshadow.exe -da
答案 1 :(得分:0)
我不知道PowerShell能够像Expect脚本那样行事。
也就是说,您可以绕过-da选项的用户输入要求。使用vshadow查询获取所有副本,然后通过管道传递到foreach循环以执行vshadow delete(-ds)。