大量のファイルの名前を変更するバッチスクリプトを作成しました。名前を取り、それをテキスト文書で検索し、その行をコピーし、必要なデータを取り込み、ファイルの名前を変更します。Windowsバッチの名前をテキスト文書から変更する
ほとんどの部分は正常に動作するようですが、私はそれが常にコンソールでエラー/警告が生成されるので、それはやっているかどうかを確認することはできません。
@echo off
set ogg=.ogg
Setlocal EnableDelayedExpansion
for %%a in (*.ogg) do (
set fileNameFull=%%a
set fileName=!fileNameFull:~0,-4!
for /F "delims=" %%a in ('findstr /I !fileName! strings.txt') do (
endlocal
set "stringLine=%%a%ogg%"
)
Setlocal EnableDelayedExpansion
set fullString=!stringLine:~26!
ren %%a "!fullString!"
)
pause
コードが動作する、ファイルの10,000秒の時に名前を変更されているように私はちょうど、進捗状況を追跡できるようにしたいのですが、私はどのくらい離れているかのプロセスに沿っての兆候をしましたん。
エラーは以下のとおりです。
"FINDSTR: Cannot open [...]" "The syntax of the command is incorrect."
返信いただき、ありがとうございます。 DelayedExpansionを無効にしなければならなかったのは、 "!"テキストファイルからコピーされた文字列内の文字列が削除されていました。私はこれが問題を引き起こしていると思うが、私はその代替案が何であるか分からない。 – Adamj200
これは、サンプル代表データを提供する理由です。この場合、全体のアプローチを変更することができます。 – Magoo