这些文件是否放入cmd上下文然后才执行/输入? 只运行.bat文件,但不能运行powershell文件。
如何在没有bat文件的情况下运行它?
答案 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文件,并且每个文件都有脚本,那么您已经完成了设置。