Windows 如何运行PowerShell脚本
如何运行PowerShell脚本Windows 如何运行PowerShell脚本,windows,powershell,scripting,Windows,Powershell,Scripting,如何运行PowerShell脚本 我有一个名为myscript.ps1的脚本 我已经安装了所有必要的框架 那东西是我定的 我已经按照上面的说明做了 我试着这样运行它: powershell.exe'C:\my\u path\yada\u yada\run\u import\u script.ps1'(带或不带——noexit) 它完全不返回任何内容,只是输出了文件名 没有错误,没有消息,什么都没有。哦,当我添加-noexit时,同样的情况也会发生,但我仍在PowerShell中,必须手动退出
- 我有一个名为myscript.ps1的脚本
- 我已经安装了所有必要的框架
- 那东西是我定的
- 我已经按照上面的说明做了
我试着这样运行它:
(带或不带powershell.exe'C:\my\u path\yada\u yada\run\u import\u script.ps1'
)——noexit
-noexit
时,同样的情况也会发生,但我仍在PowerShell中,必须手动退出
.ps1文件应该运行一个程序,并根据该程序的输出返回错误级别。但我很确定我还没到那里
我做错了什么
PS
命令提示符出现PS> cd C:\my_path\yada_yada\ (enter)
PS> .\run_import_script.ps1 (enter)
cmd.exe
运行PowerShell脚本,如下所示:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
type "script_path" | powershell.exe -c -
据此,
或者您甚至可以从C应用程序运行PowerShell脚本:-)
如果您使用的是PowerShell 2.0,请使用PowerShell.exe的
-File
参数从其他环境(如cmd.exe)调用脚本。例如:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
我也有同样的问题,我试了又试。。。最后我用了:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
并将这一行放入批处理文件中,这样做就可以了。如果您只有PowerShell 1.0,这似乎可以很好地完成以下任务:
powershell -command - < c:\mypath\myscript.ps1
powershell-command-
它将脚本文件通过管道传输到PowerShell命令行。如果要在不修改默认脚本执行策略的情况下运行脚本,可以在启动Windows PowerShell时使用旁路开关
powershell [-noexit] -executionpolicy bypass -File <Filename>
powershell[-noexit]-执行策略旁路-文件
- 给出脚本的路径,即通过cmd设置路径:
$>。c:\program file\prog.ps1
- 运行PowerShell的入口点函数:
例如,
$>add或entry\u func或main
powershell-executionpolicy bypass-File。\Test.ps1
注意:这里的
Test.ps1
是PowerShell脚本。非常简单。在Windows中右键单击.ps1文件,然后在shell菜单中单击Run with PowerShell。如果您的脚本使用扩展名.ps1
命名,并且您位于PowerShell窗口中,则只需运行/myscript.ps1
(假设该文件位于您的工作目录中)
这对我来说在Windows 10上的PowerShell 5.1版也是如此,我认为我没有做任何事情来实现这一点。一个简单的方法是使用、打开脚本、运行和调用脚本、函数
如果要使用Windows任务计划程序运行PowerShell脚本,请执行以下步骤:
Program/Script
设置为Powershell.exe
参数设置为-文件“C:\xxx.ps1”
这是另一个答案。使用文件名前面的
-File
参数。引号使PowerShell认为这是一系列命令。我有一个非常简单的答案:
set executionpolicy unrestricted
编辑:完成后,请确保运行
设置执行策略默认值
,否则您将面临安全风险(感谢匿名用户)。您可以从cmd运行,如下所示:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
type "script_path" | powershell.exe -c -
你的博客链接做到了。我必须使用
powershell-noexit“&“C:\yada\u yada\run\u import\u script.ps1”
(注意这三个双引号)我真的不明白为什么,但在这一点上,我真的不在乎:)非常感谢。“&
到底做了什么?根据我们的说法,“&”代表“如果你真的想执行这个字符串值”(也就是说,如果要运行路径包含在双引号中的脚本,则需要在路径前面加上Call运算符(与号)。”在我为新创建的未签名脚本绕过powershell的默认执行策略之前,所有这些都不适用于我。除此之外,这需要以管理员身份重新启动powershell。完全同意@LukePlupett的观点-让最简单的用例花20分钟的时间进行谷歌搜索和搜索是非常棒的。还有错误消息!显然,这些人在70年代在IBM工作。正如下面的一条评论所述,执行策略必须被绕过。这里没有讨论的一项是如何从命令行运行powershell脚本并传入参数。为此,请键入powershell-executionpolicy bypass。“\myscript.ps1 yadayada”
是否有方法向此类调用添加参数?您应该能够在脚本文件路径后跟踪参数。由于在此系统上禁用了脚本的执行,因此无法从PowerShell.exe使用-[-file]”加载。有关详细信息,请参阅“获取有关签名的帮助”如果尚未在系统上启用PowerShell脚本执行,请添加参数-ExecutionPolicy Bypass
FYI,以我的经验,这也适用于PowerShell 1.0(Windows 2012 Server),这应该是e