【发布时间】:2014-09-29 19:31:06
【问题描述】:
我正在尝试编写一个简单的脚本,该脚本将在 Windows 中执行控制台命令,该命令始终要求确认是否覆盖现有数据。我认为像下面这样的东西会起作用,但似乎我错了(毫不奇怪,write-host 不与命令行交互,我相信它只是将文本放在屏幕上)。任何人都可以就如何处理这个问题提供一些建议吗?我需要能够每周通过任务调度程序执行脚本而无需交互。
脚本:
Start-Process -NoNewWindow -FilePath pw -ArgumentList @"
threshold checkpoint create "WeeklyBackup" "WeeklyBackup"
"@
sleep -Seconds 3
$confirm = Select-String -pattern "About to over-write existing CheckPoint 'WeeklyBackup'." -Quiet
if ($confirm)
{
Write-Host "Y`r"
}
我希望在控制台中看到的内容:
D:\BMC_Software\ProactiveNet>pw threshold checkpoint create "WeeklyBackup" "Week
lyBackup"
About to over-write existing CheckPoint 'WeeklyBackup'. Do you want to proceed?
(y/n)
然后用户将按 Y 并回车,然后该过程将完成。但我希望这个自动化。
提前感谢您的任何建议。
【问题讨论】:
-
你试过只做
echo "Y`r" | pw吗? -
嗯,这大大简化了事情,可以按需要工作。
-
太棒了!很高兴它成功了。
标签: powershell command-line scripting automation