|
|
发表于 2022-12-1 18:42:41
|
显示全部楼层
本帖最后由 dos时代菜鸟 于 2022-12-4 23:42 编辑
open_with_close_window.7z
(939 Bytes, 下载次数: 27)
需要事先 设定 已单独进程运行 ,win7 下可能需要注销一下,或者手动设置一下。
============================================
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set reg_cmd="\"%~dpnx0\" \"%%1\""
- if "%~1"=="" (
- SET /P ST=输入 A 添加右键菜单,输入 D 删除右键菜单:
- if /I "!ST: =!"=="a" call:Add
- if /I "!ST: =!"=="d" call:Remove
- pause
- goto :eof
- )
- call :exec "%~1"
- goto :eof
- :remove
- echo remove
- reg delete "HKEY_CLASSES_ROOT\*\shell\exec" /f
- exit /b
- :add
- echo reg_add
- echo.
- echo exe
- reg add "HKEY_CLASSES_ROOT\*\shell\EXEC" /ve /t REG_SZ /d "&打开当前文件并关闭浏览窗口" /f
- reg add "HKEY_CLASSES_ROOT\*\shell\EXEC\command" /ve /t REG_SZ /d %reg_cmd% /f
- rem 设置 单独进程 运行 explorer.exe / win7下需要手动设置 资源管理器选项,或者可能需要注销。
- reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v SeparateProcess /t REG_DWORD /d 1 /f
- exit /b
- :exec
- set "file_p=%~dp1"
- set "file_p=!file_p:~0,-1!"
- for %%c in ("!file_p!") do (set "windowtitle=%%~nxc")
- if "!windowtitle!"=="" set "windowtitle=%~dp1"
- for /f "delims=" %%c in ('tasklist /fi "imagename eq explorer.exe" /nh /fo:CSV /v') do (
- SET STR1=%%c
- set str1=!str1:","=/!
- set str1=!str1:"=/!
- for /f "tokens=2,9 delims=/" %%d in ("!str1!") do (
- for %%f in ("!windowtitle!" "!file_p!") do (
- if /i "%%~e"=="%%~f" (
- echo %%d,%%e
- taskkill /fi "pid eq %%d " /fi "imagename eq explorer.exe"
- echo.
- )
-
- )
- )
- )
- start "" "%~1"
- exit /b
复制代码
|
|