如何运行PowerShell脚本

时间:2010-01-09 22:19:10

标签: windows powershell scripting

如何运行PowerShell脚本?

  • 我有一个名为myscript.ps1的脚本
  • 我安装了所有必要的框架
  • 我设置了execution policy的东西
  • 我已按照this MSDN help page上的说明操作 我试图像这样运行它: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'(有或没有--noexit

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

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

.ps1文件应该运行一个程序并返回依赖于该程序输出的错误级别。但我很确定我还没到那里。

我做错了什么?

15 个答案:

答案 0 :(得分:655)

  1. 启动Windows PowerShell,稍等片刻,以显示PS命令提示符
  2. 导航到脚本所在的目录

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

    PS> .\run_import_script.ps1 (enter)
    
  4. 我错过了什么?

    或者:您可以像cmd.exe那样运行PowerShell脚本:

    powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
    

    根据此blog post here

    或者您甚至可以从C#app运行Powershell脚本:-)

    Asynchronously execute PowerShell scripts from your C# application

答案 1 :(得分:194)

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

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1

答案 2 :(得分:164)

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

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

答案 3 :(得分:61)

类型:

powershell -executionpolicy bypass -File .\Test.ps1

注意:此处Test.ps1是PowerShell脚本。

答案 4 :(得分:27)

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

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

并将此行放在批处理文件中,这样可行。

答案 5 :(得分:21)

如果您只有 PowerShell 1.0 ,这似乎可以很好地解决问题:

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

它将脚本文件传递给PowerShell命令行。

答案 6 :(得分:11)

非常简单。右键单击Windows中的.ps1文件,然后在shell菜单中单击使用PowerShell运行

答案 7 :(得分:10)

一种简单的方法是使用PowerShell ISE,打开脚本,运行并调用脚本,函数......

Enter image description here

答案 8 :(得分:9)

使用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

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

  1. 创建一个指向命令提示符的快捷方式(我将其命名为 行政命令提示)
  2. 打开快捷方式的属性,然后转到“兼容性”标签
  3. 在“权限级别”部分下,确保“#34;以管理员身份运行此程序”旁边的复选框&#34;已检查

答案 9 :(得分:7)

  • 提供脚本的路径,即cmd:

    的路径设置

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

  • 运行PowerShell的入口点功能:

    例如,$> add or entry_func or main

答案 10 :(得分:6)

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

无论如何,对于我来说,无论如何,在Windows 10上使用PowerShell版本5.1都是如此,我并不认为我已经做了任何事情来实现它。

答案 11 :(得分:5)

如果您想使用Windows任务计划程序运行PowerShell脚本,请按照以下步骤操作:

  1. 创建任务

  2. Program/Script设为Powershell.exe

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

  4. 这是另一个答案, How do I execute a PowerShell script automatically using Windows task scheduler?

答案 12 :(得分:1)

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

答案 13 :(得分:1)

我有一个很简单的答案,可以起作用:

  1. 以管理员模式打开PowerShell
  2. 运行:set-executionpolicy unrestricted
  3. 打开常规的PowerShell窗口并运行脚本。

我在错误消息中给出的链接之后找到了该解决方案: About Execution Policies

答案 14 :(得分:1)

您可以像这样从cmd运行:

type "script_path" | powershell.exe -c -