所以大約一年前,我正在做一個小專案,我正在尋找可以批量處理一些動態顏色的東西(例如,只改變幾個單詞的顏色)。我找到了這個 :
[CODE INTRO]
call :TXTCOLOR
set COLOR=TXTCOLOR.exe
[CODE]
:TXTCOLOR
Echo.Const W=^2>t.vbs&Echo.Set o=WScript.StdOut>>t.vbs
For %%b In (
"4D53434600000000BA030000000000002C000000000000000301010001000000000000"
"004900000001000100D20700000000000000009E3B8A662000747874636F6C6F722E65"
"78650063EB078D6903D207434BDD544B681341189E6D538D35352AE2030F4EC44A458D"
"55113C88D4C75A85AA5B5A2F8AD66D324997A6BB7177A2297868498B9450ECA182871E"
"7AF0E0C183878AA98844DA83828288074FE24549B1A00785452AEB3F8F3C5A7C54BD39"
"F0E77F7FF3CD9FD9397976045523847C209E87500E89D5847EBFFA40566C7AB0024D2C"
"7B1ECA292DCF43ED5D868393B615B7F51E1CD14DD3A2B893603B6562C3C4474FB7E11E"
"2B4AC27575B55B2486A622D4A254CDC37D8B82D5CB9525F3624DABE167250896EC985D"
"25782354D6A851C4A70F237E2E5EB8B25297145F1701EFC022CEFAA76B0C70F7FF221F"
"A6244D8B644036540BDE950B202E86A33AD5C17EA188C04BA6E78F864D23FFB73CCF0C"
"BDEB9F6D006324ABFA33AE2F38180016593590C9FBB2FED6C228789969DF903AC7637E"
"16EB2BC6DCAC3A9771157E6782A3F9C17C7060032A77071F295AE19C289EB9C413505E"
"5559DEB4B07C872867B97D15B9CC6385A7EBCAE9B5909EA945F2CACE0498C586F3A146"
"04D80FA7EDFE8CA25FEE995704C53298E865C7630D5F7983CBCC8F254E93EC8F6B9D64"
"95AD6C28190E12280D6AB2767E3E52CC33D47ED7637CAE8D0BE48C8B8203AB8AB6121C"
"A86124328CCE17CFF3B44258617C3E0FAB6FB4ACFA592B6C55F830FBDFB24F5684362A"
"9259207BD21D525F0F3E9530FC544B71139A616EAE062CE8789D455A0E31BBC04E0BCC"
"82F7D5F702EA45690EEB99E5E75553BCCAC747CCE7F374AA747FD6B0FB9313439BCDB1"
"0F0FB091025D3778979F776985EB0263589DD578B5360CDB0DAB2EC89C56E8E5D9358C"
"02CC010462E7BF791E9FDAA7ACFA492B5C1000B0B5573F86D9E5F1EAC7A5BE25F56DA9"
"A7A57E22F533A9EF487D57EA09A973523FC48B79FBFE9755EFD43B08AE084DD38895B0"
"EC304913DCA947BAE3B69532A30D8D3B8F6D8B5936A970E181374C7A8A5C69314CD2D0"
"B86BF736BC997611CC5EB4CDB50BF05FE1B21D08897771AE22761562D3F8C7DCD6410E"
"836C07D9077210A419A41D8480A442A26E08F44D907BA17FEBEB712E476C1A8E2612E0"
"38D44E10130CC349478DB841B959B4204B2D56C6671103A3236299D4B612B124733A1C"
"423BF464B283F626090FC409EDD10D53B7E30EF8240D30DDC4364962EF1EB96333A16D"
"347A5C37A30922DC2396E95809D216B109310FA76231629F30631624DB4AC97698FA21"
) Do >>t.vbs (
Echo.For b=1To 69Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
For %%b In ("4A6DA33345591BFA0E"
) Do >>t.vbs (
Echo.For b=1To 17Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
Cscript /Nologo t.vbs > TXTCOLOR.ex_
Del /f /q /a t.vbs >nul 2>&1
Expand -r TXTCOLOR.ex_ >nul 2>&1
Del /f /q /a TXTCOLOR.ex_ >nul 2>&1
Goto :Eof
:----------------------------------------------
[END]
這會生成一個 .exe,它允許我們使用以下語法更改批處理檔案中的顏色:
%COLOR% [COLOR CODE] [LINE PARAMETER] "[TEXT]"
[COLOR CODE] 是經典的 cmd 顏色系統,第一個字符為背景 id,第二個字符為文本顏色 id。[LINE PARAMETER] 如果不是行的最后一部分,則為 0,如果是,則為 1。當然,[TEXT] 是文本。
例如,如果我想用白色的“hello”和“test”以及淺綠色的“world”來寫“Hello world test”(所有東西都帶有back baground),它應該看起來像這樣:
%COLOR% 0F 0 "Hello "
%COLOR% 0A 0 "world "
%COLOR% 0F 1 "test"
我把 1 放在最后一個,因為它是行的結尾。
Finally, we come to my question : how does the thing work ? I mean, using a batch we're generating a .exe capable of being used as a command in the CMD. But how to generate one that is working ?
Thank you if you at least read until here, even if you don't have any answer. Have a nice day ;)
uj5u.com熱心網友回復:
該代碼echo將很多東西放入 ( >>) 檔案t.vbs中,即它正在創建一個 VBScript 檔案。
然后執行 VBScript 檔案 ( Cscript /Nologo t.vbs) 并將 VBScript 的輸出寫入TXTCOLOR.ex_.
由于TXTCOLOR.ex_是壓縮檔案,所以是Expanded,它會給你TXTCOLOR.exe哪個可以執行。
但是如何生成一個有效的?
如果您想對不同的可執行檔案執行相同操作,只需顛倒步驟順序:
- 創建可執行檔案
- 壓縮它,使其具有更少的位元組
- 得到它的十六進制轉儲
- 撰寫一個可以將十六進制轉儲轉換為二進制檔案的 VBScript 檔案
- 撰寫一個寫入VBScript檔案的批處理檔案
但是:如果您只想執行一些代碼,您可以立即在可執行檔案中實作它。它更不容易出錯,也更省力。混淆這樣的東西會讓人懷疑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433434.html
