2017-12-18 1 views
1

내부의 행을 새 대상 폴더로 바꾸려면 ini 파일을 편집해야합니다.문자열을 배치로 바꾸려면 INI를 편집하십시오.

새로운 경로로 이동해야합니다. 비슷한 검색을 몇 번 시도했지만 직접 검색하지 못했습니다. 여기 내가 시도했지만 아무 일도 없었어 :

@echo off 
set "file=C:\Users\Test\AppData\Roaming\OBS\profiles\Test.ini" 
if exist "%file% (
    findstr /v /i "SavePath=" "%file%" >"%file%.tmp" 
    >>"%file%.tmp" echo/SavePath=C:\test\backup\backup.flv 
    move /y "%file%.tmp" "%file%" >nul 
) 
+0

SavePath를 이전 및 새 파일과 함께 임시 파일에 기록합니다. 예상되는 최종 결과는 무엇입니까? INI 파일에 더 많은 행이 있고 그 다음에이 한 행만 유지해야합니까? – Squashman

+0

예 나머지 ini 파일을 그대로 유지해야하므로이 행의 데이터를 새 경로로 변경하기 만하면됩니다. 내가 바꿀 필요가있는 2 개의 다른 항목이있다. 그러나 이것은 주요한 것이었다. 또한 나는 시스템에 jrepl과 같은 다른 프로그램/배치를 추가 할 수 없다는 것을 알 수 있습니다. – afmxer

+0

아마도 '읽어야합니다.'- 만약 존재한다면 "% file %"'닫는 따옴표를 기록하십시오! 또한'If Not Exist "% file %"Exit/B'를 읽으려면 해당 행을 변경해야한다고 언급 할 가치가 있습니다. 마지막으로'C : \ Users \ Test \ AppData \ Roaming'을'% AppData %'로 대체 할 수 있습니다. – Compo

답변

0

여기는 일부 템플릿을 위해 매일 사용하는 배치 파일에서 발췌 한 내용입니다. 파일의 상단에 정의 된대로 그것은 새로운 replace 문자열로 지정된 search 문자열을 대체합니다 : 이미 if exist을 처리하고 나는 그 조각을 포함하지 않은 있도록 원본 파일을 덮어 쓰는처럼

@echo off &setlocal 
set "search=c:\old\path" 
set "replace=d:\new\path" 
set "textfile=test.ini" 
set "newfile=output.ini" 
echo Scanning %textfile% 

(for /f "delims=" %%i in ('findstr "." "%textfile%"') do (
    set "line=%%i" 
    setlocal enabledelayedexpansion 
    set "line=!line:%search%=%replace%!" 
    echo(!line! 
    endlocal 
))>"%newfile%" 

것 같습니다.

희망이 있습니다.

관련 문제