如果您希望快速突出顯示並直接從命令提示符複製文本,而不是將輸出重定向到文件,QuickEdit模式可能很有用。但是,它有它的缺點。如果您正在運行批處理腳本,則在控制檯中選擇文本將暫停腳本執行,直到文本被取消選中。如果腳本預計會不停頓地繼續運行,這可能會成爲問題。Windows批處理:如何禁用單個腳本的QuickEdit模式?
如何禁用某些BATCH腳本的QuickEdit模式?
如果您希望快速突出顯示並直接從命令提示符複製文本,而不是將輸出重定向到文件,QuickEdit模式可能很有用。但是,它有它的缺點。如果您正在運行批處理腳本,則在控制檯中選擇文本將暫停腳本執行,直到文本被取消選中。如果腳本預計會不停頓地繼續運行,這可能會成爲問題。Windows批處理:如何禁用單個腳本的QuickEdit模式?
如何禁用某些BATCH腳本的QuickEdit模式?
不幸的是,沒有辦法從命令行編輯當前CMD控制檯實例的QuickEdit設置。但是,我們可以暫時禁用全局QuickEdit設置並啓動新的控制檯實例。有一些方法可以做到這一點,每個方法都有自己的優點(缺點)和缺點(缺點)。以下兩種解決方案都需要修改註冊表的能力。
REGEDIT
CON:需要臨時REG文件的創建
代碼(去你的腳本的開始) :
if exist "%TEMP%\consoleSettingsBackup.reg" regedit /S "%TEMP%\consoleSettingsBackup.reg"&DEL /F /Q "%TEMP%\consoleSettingsBackup.reg"&goto :mainstart
regedit /S /e "%TEMP%\consoleSettingsBackup.reg" "HKEY_CURRENT_USER\Console"
echo REGEDIT4>"%TEMP%\disablequickedit.reg"
echo [HKEY_CURRENT_USER\Console]>>"%TEMP%\disablequickedit.reg"
(echo "QuickEdit"=dword:00000000)>>"%TEMP%\disablequickedit.reg"
regedit /S "%TEMP%\disablequickedit.reg"
DEL /F /Q "%TEMP%\disablequickedit.reg"
start "" "cmd" /c "%~dpnx0"&exit
:mainstart
REG
CON:不同的版本有不同的語法(佔代碼如下)
代碼(在您的腳本的開頭處):
set reg50=::&set reg51=::&(reg /?>nul 2>&1 && set reg51=)
if %errorlevel%==5005 set reg50=
set qkey=HKEY_CURRENT_USER\Console&set qprop=QuickEdit
%reg51%if defined qedit_val (echo y|reg add "%qkey%" /v "%qprop%" /t REG_DWORD /d %qedit_val%&goto :mainstart)
%reg50%if defined qedit_val (reg update "%qkey%\%qprop%"=%qedit_val%&goto :mainstart)
%reg51%for /f "tokens=3*" %%i in ('reg query "%qkey%" /v "%qprop%" ^| FINDSTR /I "%qprop%"') DO set qedit_val=%%i
%reg50%for /f "tokens=3*" %%i in ('reg query "%qkey%\%qprop%"') DO set qedit_val=%%i
if "%qedit_val%"=="0" goto :mainstart
if "%qedit_val%"=="0x0" goto :mainstart
%reg51%echo y|reg add "%qkey%" /v "%qprop%" /t REG_DWORD /d 0
%reg50%if "%qedit_val%"=="" reg add "%qkey%\%qprop%"=0 REG_DWORD
%reg50%if "%qedit_val%"=="1" reg update "%qkey%\%qprop%"=0
start "" "cmd" /c set qedit_val=%qedit_val% ^& call "%~dpnx0"&exit
:mainstart
如果您有其他的解決方案,隨意張貼。
一種會影響當前命令提示符會話的方式。
Here's quickEdit.bat
。它是一個自編譯的.net腳本,因此需要安裝.net(在Winsows XP/2003上默認不安裝)。
用法:
啓用:
quickEdit 1
禁用:
quickEdit 2
得到國家:
quickEdit 3
這是超級有用和超級酷!編譯的exe文件是否需要.net框架?或者只是批處理文件需要它? –
@MarkDodsons - 是 - 兩者都需要.net框架(這只是一些XP/Win2003機器的問題).net可執行文件[不完全一樣](https://stackoverflow.com/questions/2638883)作爲win32可執行文件。 – npocmaka
我給你的信用爲逆向思考。令人沮喪的是,沒有更簡單的方法,分發給最終用戶的批處理腳本可能會從失敗中「失敗」,除非我們想要一點點「破解」。 – searchengine27