如何从powerhsell调用groovy脚本

问题描述 投票:0回答:1

我正在尝试使用Powershell自动执行Groovy脚本。我现在已经在机器上安装了Groovy。我的查询是如何从PowerShell调用groovy脚本:(。任何先决条件。请提供帮助。

powershell groovy automation
1个回答
0
投票
老实说,根据您要执行的操作,您完全不需要PowerShell即可在计划任务中执行此操作。只需设置任务,将完整的unc设置为groovy并在任务运行字段中输入路径名即可。将PowerShell混合在一起只是多余的步骤。 ST可以运行任何可以直接运行的可执行文件。

从我在评论中给您的搜索字符串返回的参考和示例。

Windows 10 Task Scheduler: schedule to run an .exe file

PowerShell: Running Executables

3。调用命令(ICM)

为什么:非常适合通过WSMAN在多台计算机上执行代码。

详细信息:使用WimRM在本地或远程系统上运行命令。它不是异步的,将按照提供给-computername的顺序运行。的结果将按先完成的顺序返回。如果-AsJob使用时,返回作业对象,否则返回结果脚本/代码。

示例:

#runs ping on multiple machines $scriptblock = {ping server3} Invoke-Command -scriptblock $scriptblock -computername "server1","server2"

4。调用项(II)
为什么:强制对项目执行默认操作。

详细信息:尝试使用相关程序打开文件时很好。例如,如果您调用带有PDF文件的项目,则它将在以下位置打开与PDF文件关联的任何程序。也可以使用一次打开多个文件。这不利于执行程序。

示例:

#opens all PDFs in the current directory Invoke-Item *.pdf

5。呼叫接线员&
为什么:用于将字符串视为SINGLE命令。对交易有用带有空格。

在PowerShell V2.0中,如果您正在运行7z.exe(7-Zip.exe)或其他以数字开头的命令,您必须使用命令调用运算符&。

PowerShell V3.0解析器现在更加智能,在这种情况下,您不必需要&了。

详细信息:运行命令,脚本或脚本块。呼叫接线员,也称为“调用运算符”,您可以运行以下命令存储在变量中并由字符串表示。因为打电话操作员不解析命令,无法解释命令参数

示例:

& 'C:\Program Files\Windows Media Player\wmplayer.exe' "c:\videos\my home video.avi" /fullscreen

当外部命令具有很多参数时,事情会变得棘手或参数或路径中有空格!
带空格,您必须嵌套引号,而结果却不是永远清楚!

在这种情况下,最好像这样将所有内容分开:

$CMD = 'SuperApp.exe' $arg1 = 'filename1' $arg2 = '-someswitch' $arg3 = 'C:\documents and settings\user\desktop\some other file.txt' $arg4 = '-yetanotherswitch' & $CMD $arg1 $arg2 $arg3 $arg4 # or same like that: $AllArgs = @('filename1', '-someswitch', 'C:\documents and settings\user\desktop\some other file.txt', '-yetanotherswitch') & 'SuperApp.exe' $AllArgs

6。 cmd / c-使用旧的cmd shell
**此方法不应再与V3一起使用

为什么:绕过PowerShell并从cmd shell运行命令。经常在cmd shell中运行的DIR比在PowerShell(注意:这是PowerShell v2及其对.Net 2.0,这不是V3的问题)。

详细信息:在PowerShell中打开CMD提示,然后执行命令并返回该命令的文本。 / c告诉CMD它应该在命令完成后终止。有几乎没有理由将其用于V3。

示例:

#runs DIR from a cmd shell, DIR in PowerShell is an alias to GCI. This will return the directory listing as a string but returns much faster than a GCI cmd /c dir c:\windows

开始过程(开始/树液)
    为什么:启动一个进程并返回.Net进程对象提供了PassThru。它还允许您控制启动过程的环境(用户配置文件,输出重定向等等)。您还可以使用Verb参数(右键单击文件,动作列表),以便例如播放wav文件。
  1. 详细信息:执行一个程序,返回程序的过程对象。应用。允许您控制文件(动词)上的操作以上所述)并控制应用运行的环境。您还可以等待过程结束。你也可以订阅流程Exited事件。

    示例:

#starts a process, waits for it to finish and then checks the exit code. $p = Start-Process ping -ArgumentList "invalidhost" -wait -NoNewWindow -PassThru $p.HasExited $p.ExitCode #to find available Verbs use the following code. $startExe = new-object System.Diagnostics.ProcessStartInfo -args PowerShell.exe $startExe.verbs

Weekend Scripter: Use the Windows Task Scheduler to Run a Windows PowerShell Script

© www.soinside.com 2019 - 2024. All rights reserved.