如another question中所述,可以修补cmd.exe以禁止“终止批处理作业(是/否)?”信息。 Patching instructions适用于Windows XP。
不幸的是,对于Windows 7,这些修补方向已经过时,我不知道有足够的程序集来更新它们。 (我知道如何使用十六进制编辑器,并且能够按照WinXP的说明进行操作。)
根据这些WinXP说明,如何更新Windows 7中的cmd.exe来修复这个令人讨厌的错误?
答案 0 :(得分:3)
该网页的作者给了我更换补偿:
.text:000000004AD1CF53 48 83 3D 8D 02 01 00 00 cmp cs:CurrentBatchFile, 0
.text:000000004AD1CF5B 74 3D jz short loc_4AD1CF9A
.....
.text:000000004AD1CF5D BA 7B 23 00 00 mov edx, 237Bh
.text:000000004AD1CF62 33 C9 xor ecx, ecx
.text:000000004AD1CF64 44 8D 42 AD lea r8d, [rdx-53h]
.text:000000004AD1CF68 E8 E3 7B 00 00 call PromptUser
.text:000000004AD1CF6D 83 F8 01 cmp eax, 1
.text:000000004AD1CF70 74 0B jz short loc_4AD1CF7D
.text:000000004AD1CF72 E8 B9 51 FE FF call ResetCtrlC
^F.text:000000004AD1CF77 90 nop
.text:000000004AD1CF78 E9 46 54 FE FF jmp loc_4AD023C3
.....
.text:000000004AD1CF7D loc_4AD1CF7D: ; CODE XREF:
CheckCtrlC+1ABC0^Xj
.text:000000004AD1CF7D 48 8B 1D 64 02 01 00 mov rbx, cs:CurrentBatchFile
.text:000000004AD1CF84 EB 0F jmp short loc_4AD1CF95
在64位win7 cmd.exe中,从偏移量0x1c35d开始为0x20字节
答案 1 :(得分:1)
编写一个真正的可执行文件然后运行你的bat文件并来回管道输入和输出,显然没有通过Ctrl + Break?