2
文字列を含まないすべての行を削除する機能が既にあります。一般的な文字列で使用すると効果的です:Windowsバッチ:文字列内の "["で文字列を検索する
@echo off
set "string_to_find=level.waypoints["
for /f "tokens=*" %%a in ('dir /B *.gsc') do (
set "tempfile=%temp%\%%a"
if exist "%tempfile%" del "%tempfile%" >NUL
findstr /C:"%string_to_find%" "%~dp0\%%a" >> "%tempfile%"
if not errorlevel 1 (
del "%%a" >NUL
move /Y "%tempfile%" "%~dp0\%%a" >NUL
if exist "%tempfile%" del "%tempfile%" >NUL
echo File "%~dp0\%%a" processed successfully
) else (
echo Problem processing file "%~dp0\%%a"
)
)
"level.waypoints"( "[")がなくてもうまく動作しますが、保存したくない行は削除されません)私は "level.waypoints"を検索する必要がありますが、本当に必要な行をすべて削除する必要がありますが、char [""はすべてが間違ってしまったり、一時ファイルが壊れてしまい、 "file not "見つけた" [""それは動作させるように、しかし私はそれを見つけることができない...運がない多くのtryed。 :/
文字列 "level.waypoints"を検索するにはどうしたらいいですか?
@jmoonにより送信されたリンクでは感謝
エスケープ文字が必要です。これを見てください:https://ss64.com/nt/syntax-esc.html – jmoon
haven'trはあなたのスクリプトを試しましたが、 'findstr/c:" level.waypoints ["* .txt'は私のところで正しく動作します。とにかくあなたはpowershellと運が良いよ –
@jmoonありがとう!そのページで、なぜ "^"がうまくいかず、代わりに "\"だけを使用する必要があることがわかりました。素晴らしい今働いて!乾杯! – Hajas