気軽に「こんなソフトありませんか?」Part.163
http://anago.2ch.net/test/read.cgi/software/1402006401/
の850氏の投稿を見てなんかやる気が湧いてしまった。
実用性ゼロのバッチ。
使い方
- insert_txt.txtを作成、挿入する文字列を書く。改行可能。ただしコマンドプロンプトの制限で一行あたりWindows2000以前は2047文字、XP以降は8191文字までになる。
- 対象ファイルとinsert_txt.txtを同じフォルダーに
- バッチの2行目、C:\1をそのフォルダーのパスに書き換え
setlocal pushd C:\1 dir /b >dir_b.txt set /a skip_num=0
- ダブルクリックでバッチ実行
バッチ
setlocal pushd C:\1 dir /b >dir_b.txt set /a skip_num=0 :for_loop pause set /a skip_num=%skip_num%+1 for /f "skip=%skip_num% tokens=1" %%i in (dir_b.txt) do call :process %%i :process set file_name_old=%file_name% set file_name=%* if "%file_name_old%."=="%file_name%." goto :quit REM 前回処理したファイル名と今回処理予定のファイル名が一致したらもう処理は完了してるので殺す if "%file_name%."=="." goto :quit REM dir /b の結果が空行になったらそれはエラーなので殺す if not "%file_name:~-4,4%."==".txt." goto :for_loop REM 拡張子が.txtじゃないなら飛ばす if "%file_name%."=="insert_txt.txt." goto :for_loop if "%file_name%."=="dir_b.txt." goto :for_loop if "%file_name%."=="ファイルが見つかりません." goto :quit echo.>>%file_name% REM 改行の挿入 for /f "tokens=* delims=" %%i in (insert_txt.txt) do echo %%i >>%file_name% REM insert_txt.txtは挿入する文字列が記されたファイル goto :for_loop :quit echo 処理終了 endlocal pause exit