关于windows:如何运行PowerShell脚本

How to run a PowerShell script

如何运行PowerShell脚本?

  • 我有一个名为myscript.ps1的脚本
  • 我安装了所有必要的框架
  • 我设置了执行策略
  • 我已按照此msdn帮助页上的说明操作我试着这样运行它:powershell.exe 'C:\my_path\yada_yada
    un_import_script.ps1'
    (有或无--noexit)

除了输出文件名外,它什么也不返回。

没有错误,没有消息,什么都没有。哦,当我添加-noexit时,同样的事情发生了,但是我仍然在PowerShell中,必须手动退出。

.ps1文件应该运行一个程序,并根据该程序的输出返回错误级别。但我肯定我还没到那里。

我做错什么了?


  • 启动Windows PowerShell,等待ps命令提示出现
  • 导航到脚本所在的目录

    1
    PS> cd C:\my_path\yada_yada\ (enter)
  • 执行脚本:

    1
    2
    PS> .
    un_import_script.ps1 (enter)
  • 我错过了什么??

    或者:您可以从cmd.exe运行PowerShell脚本,如下所示:

    1
    2
    powershell -noexit"&""C:\my_path\yada_yada
    un_import_script.ps1"
    "" (enter)

    根据这篇博文

    或者您甚至可以从您的C应用程序运行PowerShell脚本:-)

    从C应用程序异步执行PowerShell脚本


    如果您在PowerShell 2.0上,请使用PowerShell.exe的-file参数从其他环境(如cmd.exe)调用脚本,例如:

    1
    2
    Powershell.exe -File C:\my_path\yada_yada
    un_import_script.ps1


    如果要在不修改默认脚本执行策略的情况下运行脚本,则可以在启动Windows PowerShell时使用旁路开关。

    1
    powershell [-noexit] -executionpolicy bypass -File <Filename>


    Type:

    powershell -executionpolicy bypass -File .\Test.ps1

    注意:这里Test.ps1是PowerShell脚本。


    我也遇到过同样的问题,我尝试过…最后我用了:

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

    把这行放到一个批处理文件中,就可以了。


    如果您只有PowerShell 1.0,那么这似乎足够成功:

    1
    powershell -command - < c:\mypath\myscript.ps1

    它将脚本文件传输到PowerShell命令行。


    一个简单的方法是使用PowerShellISE,打开脚本,运行并调用脚本,函数…

    Enter image description here


    相当容易。右键单击Windows中的.ps1文件,然后在Shell菜单中单击使用PowerShell运行。


    使用命令(BAT)文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @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

    如果需要以管理员身份运行:

  • 创建指向命令提示的快捷方式(我将其命名为行政命令提示)
  • 打开快捷方式的属性并转到"兼容性"选项卡。
  • 在"特权级别"部分下,确保选中"以管理员身份运行此程序"旁边的复选框。

    • 给出脚本的路径,即命令设置的路径:

      $> . c:\program file\prog.ps1

    • 运行PowerShell的入口点函数:

      例如,$> add or entry_func or main


    如果您的脚本是以.ps1扩展名命名的,并且您在PowerShell窗口中,那么您只需运行./myscript.ps1(假设文件在您的工作目录中)。

    不管怎样,在使用PowerShell 5.1版本的Windows10上,这对我来说都是真的,而且我认为我没有做任何事情使它成为可能。


    如果要使用Windows任务计划程序运行PowerShell脚本,请执行以下步骤:

  • 创建任务

  • Program/Script设为Powershell.exe

  • Arguments设为-File"C:\xxx.ps1"

  • 另一个答案是,如何使用Windows任务计划程序自动执行PowerShell脚本?.


    在文件名前面使用-File参数。引号使PowerShell认为它是一个命令字符串。