[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创代码] powershell 右键运行菜单

保存为runps1.bat文件
添加或删除ps1文件右键菜单->按指定powershell版本运行脚本
无视执行策略 - ExecutionPolicy
非右键菜单执行语法: runps1.bat "ps1脚本路径" "powershell指定版本[当前版本留空]"
无参数运行则视为 添加/删除右键菜单.
调试win7 ps2.0兼容代码使用.
  1. @echo off
  2. REM %1为空,以管理员身份运行bat,退出
  3. if "%~1"=="" start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
  4. REM %~1为REM,添加或删除注册表,退出
  5. if "%~1"=="REM" (
  6. reg delete "HKCR\Microsoft.PowerShellScript.1\Shell\以powershell 2.0运行" /f >nul 2>nul && (
  7. echo 删除ps1文件右键菜单 "以powershell 2.0 版本运行" 成功
  8. reg delete "HKCR\Microsoft.PowerShellScript.1\Shell\以powershell 当前版本运行" /f >nul 2>nul
  9. echo 删除ps1文件右键菜单 "以powershell 当前版本运行" 成功
  10. ) || (
  11. reg add "HKCR\Microsoft.PowerShellScript.1\Shell\以powershell 2.0运行\command" /ve /t REG_SZ /d "\"%~0\" \"%%1\" \"2.0\"" /f >nul 2>nul
  12. echo 添加ps1文件右键菜单 "以powershell 2.0 版本运行" 成功
  13. reg add "HKCR\Microsoft.PowerShellScript.1\Shell\以powershell 当前版本运行\command" /ve /t REG_SZ /d "\"%~0\" \"%%1\"" /f >nul 2>nul
  14. echo 添加ps1文件右键菜单 "以powershell 当前版本运行" 成功
  15. )
  16. pause&exit
  17. )
  18. REM %1文件不存在,退出
  19. if not exist "%~1" (echo 脚本文件不存在! %~1 &pause&exit)
  20. REM %1文件存在,读取ps版本参数%2
  21. if not "%~2"=="" set "psVer=-version %~2"
  22. REM 运行powershell脚本
  23. cd /d "%~dp1"
  24. powershell %psVer% -c "Get-Content '%~1' | Out-String | Invoke-Expression"
  25. pause&exit
复制代码

貌似我用不到,不过有的代码段我可以借用。谢谢啦!

TOP

返回列表