
【已解決】求修改bat文件改為拖放到bat的快捷方式圖標實現替換reg的內容謝謝最后由 yyz219 于 -12-27 09:02
nclick="copycode($('code0'));">復制代碼
- reg拖到這里去數字串sid++(完美,支持多文件拖放).bat
- +++++++++++++++++++++++++++++++++
- ::【注意:轉換成的.reg是 UNICODE 編碼】
- @echo off
- ::【檢測“關鍵字”:Windows Registry Editor Version 5.00】
- findstr Windows Registry Editor Version 5.00 %1 >nul 2>&1
- if errorlevel 1 goto B
- if errorlevel 0 goto A
- :A
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echoANSI 編碼【不可轉換】
- pause>nul
- exit
- :B
- ::【將文件轉換成:ANSI編碼(方便檢測有無“關鍵字”)】
- CHCP 65001
- CMD /D /U /CTYPE %~1 > %~dpn1_unicode-without-BOM.txt
- ECHO.//4=>U.bom
- certutil -decode -f U.bom U.bom >NUL
- CHCP 936
- MOVE /yU.bom%~dpn1_Unicode-BOM.txt >NUL
- TYPE %~dpn1_unicode-without-BOM.txt >> %~dpn1_Unicode-BOM.txt
- TYPE %~dpn1_Unicode-BOM.txt > %~dpn1_ANSI.txt
- DEL /Q /F %~dpn1_unicode-without-BOM.txt %~dpn1_Unicode-BOM.txt
- ::【檢測“關鍵字”:HKEY_USERSS-1-5-21】
- findstr HKEY_USERSS-1-5-21 %~dpn1_ANSI.txt >nul 2>&1
- if errorlevel 1 goto C
- if errorlevel 0 goto D
- :C
- DEL /Q /F %~dpn1_ANSI.txtU.bom
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo不需要替換
- pause>nul
- exit
- :D
- DEL /Q /F %~dpn1_ANSI.txtU.bom
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 要替換嗎?
- pause>nul
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo不要關閉,需要幾秒鐘
- ::【下面是替換【拖進來】的.reg文件】
- cd /d %~dp0
- for %%A in (%*) do (
- powershell -NoProfile -Command [system.io.file]::WriteAllText('%%A',([system.io.file]::ReadAllText('%%A') -replace 'HKEY_USERSS(-d+){7}','HKEY_CURRENT_USER'))
- )
- ::【下面為了 支持多個.reg轉碼 做準備】
- :TOP
- set pa=%cd%
- IF (%1) == () GOTO END
- xcopy /s /i %1z:/無效的路徑/
- SHIFT
- GOTO TOP
- :END
- ECHO Done!
- ::【將UTF-8碼 轉為 UNICODE碼】
- cd /d %~dp0
- call :CreatVBS
- for /f delims= %%a in ('dir /a-d/b *.reg') do (
- ANSI2UNICODE.vbs %%~a TEXT.ansi
- move /y TEXT.ansi %%~a
- )
- del /f /q ANSI2UNICODE.vbs
- exit
- :ToMe
- set S=.:ailnhpst/fPdv
- start %S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%
- exit
- :CreatVBS
- (echo aCode = UTF-8
- echo bCode = UNICODE
- echo Set objArgs = Wscript.Arguments
- echo.
- echo FileUrlSrc = objArgs^(0^)
- echo FileUrlDst = objArgs^(1^)
- echo Call WriteToFile^(FileUrlDst, ReadFile^(FileUrlSrc, aCode^), bCode^)
- echo.
- echo Function ReadFile^(FileUrlSrc, CharSet^)
- echo Dim Str
- echo Set stm = CreateObject^(Adodb.Stream^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.loadfromfile FileUrlSrc
- echo Str = stm.readtext
- echo stm.Close
- echo Set stm = Nothing
- echo ReadFile = Str
- echo End Function
- echo.
- echo Function WriteToFile ^(FileUrlDst, Str, CharSet^)
- echo Set stm = CreateObject^(Adodb.Stream^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.WriteText Str
- echo stm.SaveToFile FileUrlDst, 2
- echo stm.flush
- echo stm.Close
- echo Set stm = Nothing
- echo End Function)>ANSI2UNICODE.vbs
- goto :eof
- ++++++++++++++++++++++++++++++++++
- reg去數字串sid.bat(運行就替換本目錄下全部.reg)
- ::【注意:轉換成的.reg是 UNICODE 編碼】
- @echo off
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 要將本目錄的reg里面的sid去除嗎?
- pause>nul
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 不要關閉,需要幾秒鐘
- cd /d %~dp0
- for /f delims= %%A in ('dir /a-d /b *.reg') do (
- powershell -NoProfile -Command [system.io.file]::WriteAllText('%%A',([system.io.file]::ReadAllText('%%A') -replace 'HKEY_USERSS(-d+){7}','HKEY_CURRENT_USER'))
- )
- ::【將UTF-8碼 轉為 UNICODE碼】
- cd /d %~dp0
- call :CreatVBS
- for /f delims= %%a in ('dir /a-d/b *.reg') do (
- ANSI2UNICODE.vbs %%~a TEXT.ansi
- move /y TEXT.ansi %%~a
- )
- del /f /q ANSI2UNICODE.vbs
- exit
- call :ToMe
- exit
- :ToMe
- set S=.:ailnhpst/fPdv
- start %S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%
- exit
- exit
- :CreatVBS
- (echo aCode = UTF-8
- echo bCode = UNICODE
- echo Set objArgs = Wscript.Arguments
- echo.
- echo FileUrlSrc = objArgs^(0^)
- echo FileUrlDst = objArgs^(1^)
- echo Call WriteToFile^(FileUrlDst, ReadFile^(FileUrlSrc, aCode^), bCode^)
- echo.
- echo Function ReadFile^(FileUrlSrc, CharSet^)
- echo Dim Str
- echo Set stm = CreateObject^(Adodb.Stream^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.loadfromfile FileUrlSrc
- echo Str = stm.readtext
- echo stm.Close
- echo Set stm = Nothing
- echo ReadFile = Str
- echo End Function
- echo.
- echo Function WriteToFile ^(FileUrlDst, Str, CharSet^)
- echo Set stm = CreateObject^(Adodb.Stream^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.WriteText Str
- echo stm.SaveToFile FileUrlDst, 2
- echo stm.flush
- echo stm.Close
- echo Set stm = Nothing
- echo End Function)>ANSI2UNICODE.vbs
- goto :eof

