文字列値を検索/置換するこの DOS バッチ スクリプトがありますが、ファイル内の各行にスペースが追加されています。スペースをトリミングしようとしましたが、ファイルは完全に空白になります。
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
set file="C:\Eclipse64\eclipse\configuration\.settings\org.eclipse.ui.ide.prefs"
set OldStr=XXXXXXX
set NewStr=%username%
if "!~OldStr!"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %file% |find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line:%OldStr%=%NewStr%%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X >> %file%_new
) ELSE echo.
)
move /Y %file%_new %file% > nul
入力 - ファイルからの行:
eclipse.preferences.version=1
RECENT_WORKSPACES=C\:\\Users\\XXXXXXX\\workspace
期待される出力:
eclipse.preferences.version=1
RECENT_WORKSPACES=C\:\\Users\\jgemoll\\workspace
実際の出力:
eclipse.preferences.version=1
RECENT_WORKSPACES=C\:\\Users\\jgemoll\\workspace
実際の出力には、各行の終わりに末尾のスペースがあります。