如何运行PowerShell脚本?
我如何运行PowerShell脚本?
- 我有一个名为myscript.ps1的脚本
- 我有所有必要的框架安装
- 我设置了执行策略的东西
- 我已经按照这个MSDN帮助页面上的说明,并试图像这样运行它:
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(with或withot –noexit)
除了输出文件名外,它什么也没有返回。 没有错误,没有消息,什么都没有。 哦,当我添加-noexit
,同样的事情发生,但我仍然在PowerShell中,必须手动退出。
ps1文件应该运行一个程序,并返回与该程序的输出有关的错误级别。 但我很确定我还没有到达那里。
我究竟做错了什么?
- 启动Windows PowerShell,然后等待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)
根据这个博客在这里
或者你甚至可以从你的C#应用程序运行你的Powershell脚本:-)
从C#应用程序asynchronous执行PowerShell脚本
如果您使用PowerShell 2.0,请使用PowerShell.exe的-File参数从另一个环境(如cmd.exe)调用脚本,例如:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
如果要在不修改默认脚本执行策略的情况下运行脚本,则可以在启动Windows PowerShell时使用旁路开关。
powershell [-noexit] -executionpolicy bypass -File <Filename>
types:
powershell -executionpolicy bypass -File .\Test.ps1
注意:这里Test.ps1
是PowerShell脚本。
我有同样的问题,我尝试了一下,最后我用:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
把这一行放在一个batch file中,这个工作。
如果你只有PowerShell 1.0 ,这似乎足够好用了:
powershell -command - < c:\mypath\myscript.ps1
它将脚本文件pipe理到PowerShell命令行。
使用cmd(BAT)文件:
@echo off color 1F echo. C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1" :EOF echo Waiting seconds timeout /t 10 /nobreak > NUL
如果您需要以pipe理员身份运行 :
- 创build一个指向命令提示符的快捷方式(我将其命名为Administrative Command Prompt)
- 打开快捷方式的属性并转到兼容性选项卡
- 在“权限级别”部分下,确保选中“以pipe理员身份运行此程序”旁边的checkbox
一个简单的方法是使用PowerShell ISE ,打开脚本,运行并调用您的脚本,function…
-
给出脚本的path,即通过cmd设置path:
$> . c:\program file\prog.ps1
-
运行PowerShell的入口点函数:
例如,
$> add or entry_func or main
挺容易。 右键单击Windows中的.ps1文件,然后在shell菜单中单击Run with PowerShell 。
如果您的脚本以.ps1
扩展名命名,并且您位于PowerShell窗口中,则只需运行./myscript.ps1
(假定该文件在您的工作目录中)。
无论如何,无论如何,对于使用PowerShell 5.1版本的Windows 10来说,这是真的,我不认为我已经做了任何事情来使它成为可能。