powershell .\trialping.ps1 vs &".\trialping.ps1"

powershell .\trialping.ps1 vs &".\trialping.ps1"

我已经试用了。ps1 使用以下代码

param([string]$ip)start-job  -ArgumentList $ip -scriptblock {param([string]$ip)& C:\users\pubic\desktop\PingMachine.ps1 -ip $IP}

上面的代码创建了一个运行 pingmachine 的作业。ps1 它基本上每 10 秒左右 ping 一台机器并写入某个文件夹中的 output.txt。

如果 1)& ".\trialping.ps1" -ip x.x.x.x 使用一切正常

2)powershell .\trialping.ps1 -ip "x.x.x.x" 未创建输出文件。

为什么不同。提前致谢

第一种情况:

  1. 您启动脚本 .\trialping.ps1
  2. 那个脚本 运行 Start-Job cmdlet。
  3. Start-Job cmdlet 创建作业对象并 return 它。
  4. 脚本结束。
  5. 任何活动作业在后台继续 运行。

第二种情况:

  1. 您开始新的 PowerShell 副本。
  2. PowerShell 复制 运行 脚本 .\trialping.ps1.
  3. 那个脚本 运行 Start-Job cmdlet。
  4. Start-Job cmdlet 创建作业对象并 return 它。
  5. 脚本结束。
  6. PowerShell 无事可做且 -NoExit 未提供,因此 PowerShell 自行关闭并取消任何正在进行的活动作业。