【发布时间】:2013-10-24 06:51:09
【问题描述】:
我想调用一个简单的 Powershell 脚本文件,该文件应在 ps 脚本失败或通过时分别从批处理文件返回 0 或 1。并且根据返回值,我想继续还是退出。
以下说明了我尝试过的内容:
startup.bat:-
@ECHO OFF
SET x = powershell C:\Users\saravind\Desktop\pingping.ps1
if "%x%" == 1 then (
doSomething1
ECHO Ran project 1
)
pingping.ps1:-
$someIP = '192.168.173.299'
$result = $true
try { Test-Connection $someIP -Source localhost -ErrorAction Stop }
catch { $result = $false }
我想要实现的是,在执行 pingping.ps1 时,如果它可以成功 ping '192.168.173.299',它应该返回一些值,比如 1 到调用它的批处理文件。如果 ping 失败,它应该返回 0,这样批处理文件就不会继续执行 'doSomething' 即使 pinging 失败,它仍会使用我的代码执行 doSomething。我的代码有什么问题。
提前致谢。
【问题讨论】:
-
这是一个重复的问题。检查那个:stackoverflow.com/questions/6180572/…
-
我认为这不是重复的。他说ps1文件确实存在。他只是试图执行一个powershell语句。
-
道歉,我不清楚是否可以更改调用 SET x = powershell C:\Users\saravind\Desktop\pingping.ps1 以返回某些内容。我总是得到 as "" 的价值。感谢您的耐心等待
-
你为什么不试试类似的东西:powershell -ExecutionPolicy RemoteSigned -File "C:\Users\saravid\Desktop\pingping.ps1"
标签: windows powershell batch-file