Powershell 正在检查已成功执行的命令的状态

Powershell 正在检查已成功执行的命令的状态,powershell,Powershell,对不起,我是PowerShell的新手。我正在运行一个脚本,它执行一些命令从系统复制文件。。在移动到下一个命令之前,是否有方法捕获命令的状态(是否已成功完成) 例如: $scp_cmd = "scp.exe -a root@192.168.1.1:/files/repo1 /repo1" $rsync_cmd = "rsync.exe -tvP root@192.168.1.2:/files/repo2 /repo2" Invoke-Expression $scp_cmd # How do w

对不起,我是PowerShell的新手。我正在运行一个脚本,它执行一些命令从系统复制文件。。在移动到下一个命令之前,是否有方法捕获命令的状态(是否已成功完成)

例如:

$scp_cmd = "scp.exe -a root@192.168.1.1:/files/repo1 /repo1"
$rsync_cmd = "rsync.exe -tvP root@192.168.1.2:/files/repo2 /repo2"
Invoke-Expression $scp_cmd

# How do we check whether the command completed successfully?

Invoke-Expression $rsync_cmd

# How do we check whether the command completed successfully?
使用。它同时适用于
调用表达式
调用运算符:

$rsync_cmd = "rsync.exe -tvP root@192.168.1.2:/files/repo2 /repo2"
Invoke-Expression $rsync_cmd

if($LASTEXITCODE)
{
    # exit code from rsync was not 0
}
使用。它同时适用于
调用表达式
调用运算符:

$rsync_cmd = "rsync.exe -tvP root@192.168.1.2:/files/repo2 /repo2"
Invoke-Expression $rsync_cmd

if($LASTEXITCODE)
{
    # exit code from rsync was not 0
}

您应该使用try{Invoke Expression$scp_cmd},例如:try{something}catch{“Error occurrented”}if(!$Error){“No Error occurrented”}谢谢Niklas。我正在查看退出代码,是否可以使用PowerShell退出代码?例如-在执行命令时,PowerShell是否知道该命令是否返回了特定代码?不确定您的意思是,您可以在代码中使用exit.(0)以0作为退出代码结束脚本,但我不知道该命令本身是否能够以0或1以外的“errorcode”退出,具体取决于错误与否,您可以尝试一下我在另一个脚本中使用的东西:$install=Start Process-FilePath“CitrixReceiver.exe”$result=$install.Exitcode在本例中,您可以尝试使用$install调用调用表达式。它可能只适用于启动进程,我不确定您是否应该使用try{Invoke Expression$scp_cmd},例如:try{something}catch{“Error occurrend”}if(!$Error){“No Error occurrent”}谢谢Niklas。我正在查看退出代码,是否可以使用PowerShell退出代码?例如-在执行命令时,PowerShell是否知道该命令是否返回了特定代码?不确定您的意思是,您可以在代码中使用exit.(0)以0作为退出代码结束脚本,但我不知道该命令本身是否能够以0或1以外的“errorcode”退出,具体取决于错误与否,您可以尝试一下我在另一个脚本中使用的东西:$install=Start Process-FilePath“CitrixReceiver.exe”$result=$install.Exitcode在本例中,您可以尝试使用$install调用调用表达式。它可能只适用于启动过程,我不确定