如何使用bat文件从startup / autostart文件夹运行powershell脚本?

时间:2016-03-03 17:38:49

标签: powershell batch-file

这些文件是否放入cmd上下文然后才执行/输入? 只运行.bat文件,但不能运行powershell文件。

如何在没有bat文件的情况下运行它?

2 个答案:

答案 0 :(得分:3)

您不需要批处理文件(.bat.cmd文件)。只需创建%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -File whatever.ps1的快捷方式即可。您可能需要使用-ExecutionPolicy参数来允许脚本。从Cmd.exe或PowerShell提示符运行powershell /?以获取更多信息。

答案 1 :(得分:1)

您需要创建两个文件:第一个是Powershell脚本(例如script.ps1),第二个是.cmd文件,它将包含将在命令提示符下运行的命令(例如startup.cmd)。 / p>

第二个文件是计算机启动时需要执行的操作,只是将.ps1复制粘贴到启动文件夹将无法正常工作,因为它实际上并不执行脚本 - 它只打开文件用记事本。您需要执行.cmd,它本身将使用PowerShell执行.ps1。好吧,有足够的唠叨和步骤:

创建.ps1脚本并将其放在文件夹中。为简单起见,我把它放在桌面上。路径看起来像这样:

C:\Users\<user_name>\Desktop\script.ps1

创建.cmd文件并将其放在

C:\Users\<user_name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\startup.cmd

执行此操作将在每次启动时执行cmd文件。 Here is a link of how to create a .cmd file如果您需要帮助。

使用文本编辑器打开.cmd文件,然后输入以下行:

PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1 PowerShell C:\Users\<user_name>\Desktop\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1

这将做两件事:

将PowerShell的执行策略设置为Unrestricted。这是运行脚本所必需的,否则PowerShell将无法执行此操作。     使用PowerShell执行在指定路径中找到的.ps1脚本。

此代码专门针对PowerShell v1.0。如果你正在运行PowerShell v2.0,它可能会有所不同。在任何情况下,请检查此源代码以获取.cmd代码。

保存.cmd文件

既然您已经在各自的路径中使用了.ps1和.cmd文件,并且每个文件都有脚本,那么您已经完成了设置。