我有一个 powershell脚本我需要首先执行调用.cmd文件来完成网络下载,然后我需要处理下载的数据。以下是我的命令
Runas /savecred /profile /user:myuser "cmd /c C:\Users\myuser\myfile.cmd"
ECHO $Hello
从上面的命令,myfile.cmd
下载文件,然后我需要处理它。在这里,powershell不会等待文件下载并开始执行以下命令。如何让它等待文件下载?
答案 0 :(得分:0)
您需要等待runas
:
$cmd = 'runas'
$args = '/savecred','/profile','/user:myuser','cmd /c C:\Users\myuser\myfile.cmd'
Start-Process $cmd $args -Wait
答案 1 :(得分:0)
Runas.exe不会等待其子进程退出,因此没有直接的方法来执行此操作。
在循环中使用SysInternals的pslist或其他类似的解决方法,但如果有多个具有相同名称的进程,这些解决方案将会脱轨。
这一行:
runas /savecred /profile /user:user "X:\Path\MyProgram.exe"
do {
Start-Sleep -Seconds 1
pslist MyProgram >$null 2>&1
} while ($LASTEXITCODE -eq 0)