Windows批处理:如何禁用快速编辑模式为个人脚本? [英] Windows BATCH: How to disable QuickEdit Mode for individual scripts?

查看:4321
本文介绍了Windows批处理:如何禁用快速编辑模式为个人脚本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果你想迅速突出,并直接从命令提示符,而不是重定向输出到一个文件复制文本快速编辑模式可能是有用的。但是,它也有缺点。如果你有一个批处理脚本运行,在控制台中选择文本到文本被取消将暂停脚本执行。这可能是一个问题,如果脚本有望继续没有停顿。

QuickEdit mode can be useful if you wish to quickly highlight and copy text directly from the command prompt instead of redirecting output to a file. However, it has its drawbacks. If you have a batch script running, selecting text in the console will pause the script execution until the text is deselected. This can be a problem if the script is expected to continue without pause.

如何能为某些批处理脚本禁用快速编辑模式?

How can one disable QuickEdit mode for certain BATCH scripts?

推荐答案

不幸的是,有没有办法来编辑命令行当前CMD控制台实例的快速编辑设置。我们可以,但是,暂时禁用全局快速编辑设置,并启动新的控制台实例。有几个方法可以做到这一点,每一个都有自己的福利(优点)和缺点(缺点)。下面两个解决方案都需要修改注册表的能力。

Unfortunately, there is no way to edit the QuickEdit setting of the current CMD Console instance from command line. We can, however, temporarily disable the global QuickEdit setting and start a new console instance. There are a couple ways to do this, each with its own perks (pros) and drawbacks (cons). Both of the following solutions require the ability to modify the registry.


  1. REGEDIT


  • PRO:与任何常见的Windows系统兼容

  • CON:需要临时REG文件的创建

  • PRO: Compatible with any common Windows system
  • CON: Requires the creation of temporary REG files

code(去你的脚本的开头):

Code (goes at the beginning of your script):

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


  • PRO:不需要的临时文件创建

  • CON:不可用在Windows 2000和早期没有资源工具包

  • CON:不同的版本有不同的语法

  • PRO: Does not require creation of temp files
  • CON: Not available on Windows 2000 and earlier without Resource Kit
  • CON: Different versions have different syntax (accounted for in code below)

code(去你的脚本的开头):

Code (goes at the beginning of your script):

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


如果您有其他的解决方案,随意张贴。

If you have another solution, feel free to post.

这篇关于Windows批处理:如何禁用快速编辑模式为个人脚本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆