windows - 如何从批处理文件调用Powershell文件

标签 windows powershell batch-file

我想调用一个简单的 Powershell 脚本文件,该文件应在 ps 脚本失败或通过时分别从批处理文件返回 0 或 1。并根据返回值,我想继续或退出。

以下说明了我的尝试:

启动.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” 即使 ping 失败,它也会继续使用我的代码执行 doSomething。我的代码有什么问题。

提前致谢。

最佳答案

以下内容对我有用,我使用 0 表示 powershell 脚本成功,1 表示发生错误。

启动.bat:

@echo off
powershell C:\Users\saravind\Desktop\pingping.ps1

if %errorlevel% equ 0 (
    doSomething1
    ECHO Ran project 1
)

pingping.ps1:

$someIP = '192.168.173.299'
try {
    Test-Connection $someIP -Source localhost -ErrorAction Stop
}
catch {
    exit 1
}
exit 0

关于windows - 如何从批处理文件调用Powershell文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19558943/

相关文章:

c++ - 我们可以假设内存地址的最后 2 位为 00 并重用这些位吗? Windows 7页面错误蓝屏

windows - 在 Haskell 中获取本地 AppData 文件夹

powershell - 如何为每一行搜索导入的 CSV 单元格值

c# - 如何获取所有正在运行的 ASP.NET 工作进程及其关联的应用程序池的列表?

batch-file - 使用当前日期重命名文件的批处理脚本

c++ - 如何运行 Qt 应用程序?

Java -version 指向错误的目录

powershell - 如何从组的成员属性中提取安全标识符?

batch-file - 简单的批处理文件,如果 number = this echo hello,否则 echo world

windows - 运行给定目录中的所有批处理文件