如何运行PowerShell脚本?

我如何运行PowerShell脚本?

  • 我有一个名为myscript.ps1的脚本
  • 我有所有必要的框架安装
  • 我设置了执行策略的东西
  • 我已经按照这个MSDN帮助页面上的说明,并试图像这样运行它: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (with或withot –noexit)

除了输出文件名外,它什么也没有返回。 没有错误,没有消息,什么都没有。 哦,当我添加-noexit ,同样的事情发生,但我仍然在PowerShell中,必须手动退出。

ps1文件应该运行一个程序,并返回与该程序的输出有关的错误级别。 但我很确定我还没有到达那里。

我究竟做错了什么?

  1. 启动Windows PowerShell,然后等待PS命令提示符出现
  2. 导航到脚本所在的目录

     PS> cd C:\my_path\yada_yada\ (enter) 
  3. 执行脚本:

     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理员身份运行

  1. 创build一个指向命令提示符的快捷方式(我将其命名为Administrative Command Prompt)
  2. 打开快捷方式的属性并转到兼容性选项卡
  3. 在“权限级别”部分下,确保选中“以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来说,这是真的,我不认为我已经做了任何事情来使它成为可能。