当前位置:  开发笔记 > 数据库 > 正文

如何在CMD中运行PowerShell

如何解决《如何在CMD中运行PowerShell》经验,为你挑选了3个好方法。

我正在尝试在cmd命令行中运行PowerShell脚本.有人给我一个例子,它有效:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

但问题是我的PowerShell脚本有输入参数所以我试过但不起作用:

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" ' "

错误是:

术语'D:\ Work\SQLExecutor.ps1 -gettedServerName"MY-PC"'无法识别为cmdlet函数的名称,

等待帮助!谢谢!



1> Shay Levy..:

您需要将参数与文件路径分开:

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 ' -gettedServerName 'MY-PC'"

使用File参数和位置参数可以简化语法的另一个选项:

powershell.exe -noexit -file "D:\Work\SQLExecutor.ps1" "MY-PC"



2> Matt..:

我想在Shay Levy的正确答案中添加以下内容:如果创建一些批处理脚本run.cmd来启动powershell脚本,则可以使您的生活更轻松:

@echo off & setlocal
set batchPath=%~dp0
powershell.exe -noexit -file "%batchPath%SQLExecutor.ps1" "MY-PC"

SQLExecutor.ps1从现在开始,将其置于相同的路径,您只需双击即可运行它 run.cmd


注意:

如果在run.cmd批处理中需要命令行参数,只需将它们作为%1... 传递%9(或用于%*传递所有参数)到powershell脚本,即
powershell.exe -noexit -file "%batchPath%SQLExecutor.ps1" %*

该变量batchPath包含批处理文件本身的执行路径(这就是表达式%~dp0的用途)。因此,您只需将powershell脚本放在与调用批处理文件相同的路径中即可。



3> CB...:

尝试一下:

powershell.exe -noexit D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC"

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有