Windows環境だとどうやっても何か言語処理系をインストールしてプログラムかスクリプトを書く必要があります。
この作業をする目的によっては直接解決できなくても別のアプローチがありそうな気がしますが。
結論から言うと解決しました…がまだ疑問が。
Stringsという実行結果として文字列だけを返してくれる良いプログラムを見つけ、グーグル先生に頼りつつ見よう見まねで書いたバッチファイルが以下です。
------------------------------------------------------------
for /f "usebackq tokens=*" %%i in (`strings.exe -a -b 10 %1`) do @set RESULT=%%i
REN %1 %RESULT%+%1
------------------------------------------------------------
ただ、このバッチだとファイル単体なら正常に処理してくれるんですが引数にワイルドカードの入ったものを指定すると構文エラーになってしまいます。
当初の目的は該当バイナリファイルのリストを作り、別のバッチからCallで1ファイルずつこのバッチに投げて処理させることで果たせましたが、モヤモヤが残ります。
後学のために正しい書き方を知りたいのでお暇な方いらっしゃいましたらご回答お願いします。
▽2
●
匿名回答2号 ベストアンサー |
ただ、このバッチだとファイル単体なら正常に処理してくれるんですが引数にワイルドカードの入ったものを指定すると構文エラーになってしまいます。
先にバッチファイル側でワイルドカードを展開してやれば良いかと。
@echo off setlocal ENABLEDELAYEDEXPANSION for %%f in (%1) do ( for /f "usebackq tokens=*" %%i in (`strings.exe -q -a -b 10 %%f`) do set RESULT=%%i ren "%%f" "!RESULT!+%%f" ) endlocal