我正在尝试编写一个简单的脚本,它将在Windows中执行一个控制台命令,它总是要求确认覆盖现有数据。我认为类似下面的东西会起作用,但看起来我错了(并不奇怪,写主机不与命令行交互,我相信它只是将文本放在屏幕上)。谁能提供一些关于如何处理这个问题的建议?我需要能够每周通过任务调度程序执行脚本而不进行交互。
脚本:
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并回车并完成该过程。但我希望这是自动化的。
提前感谢任何建议。
答案 0 :(得分:3)
echo "Y`r" | pw
这通常用于批处理文件,但它通常也可以在PowerShell中使用。