【已解決】批處理查找文件夾路徑并替換注冊表文件內路徑最后由 大地 于 -4-8 07:34查找文件夾路徑并替換注冊表文件內路徑以下碼在XP系統中能運行,本以為正確了,改成已解決,后發現在在win10中出錯,無法運行,汗顏!!所以重新提交求助,望大神邦忙,感 謝。批處理通過所有分區深層子目錄中搜索,查到第一個文件夾PETOOLS后中止搜索,并把注冊表1.reg中原有的路徑C:PETOOLS替換為新的路徑,注意:注冊表路徑是雙斜杠,,單斜杠是無法導入注冊表的,路徑中沒有空格也沒特殊字符,也不需要搜索分區根目錄,只要子目錄,不要用wmic 也不要用poseerhsell 批處理代碼如何寫?以下是代碼在XP中能運行,在win10中出錯:@echo offsetlocal enabledelayedexpansionset target=PETOOLSset regfile=1.regset found=rem 遍歷所有分區(C到Z)for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist %%d: (echo 正在搜索 %%d 盤...rem 搜索子目錄(排除根目錄)for /f delims= %%a in ('dir /s /b /ad %%d:%target% 2^>nul') do (set path=%%arem 驗證是否為子目錄(路徑包含兩級以上目錄)if not %%~dpa==%%d: (rem 轉義路徑中的單斜杠為雙斜杠set newpath=!path:=!set found=!newpath!goto replace)))):replaceif defined found (echo 替換目標路徑為: %found%rem 創建臨時文件并寫入替換后的內容(for /f usebackq delims= %%i in (%regfile%) do (set line=%%iset line=!line:C:PETOOLS=%found%!echo !line!)) > %regfile%.tmp.regrem 替換原文件move /y %regfile%.tmp.reg %regfile% > nulecho SUCCESS) else (echo FAILED)endlocalpause