次の機能を秀丸のマクロなどで実現してください。
《機能》
多重階層構造のフォルダ群があって、各フォルダ内にある複数のテキストファイル
の先頭に固定のテキスト文字列の1行を挿入して上書き保存する。
《条件》
(1)テキストファイルのファイル名は半角数字で、拡張子は無い(1,2,3など)。
(2)拡張子のあるファイルはパスして何も変更しない。
MAILLIST.WML
と
1.BAK
2.BAK
3.BAK
など
なお、多重階層構造のフォルダの扱いが難しければ、
指定した一つのフォルダだけを対象にした処理でも構いません。
両方の回答者がいれば多重の方のポイントを多くします。
よろしくお願いいたします。
ちなみに、この機能はメーラーの引っ越しに使用します。
秀丸のマクロで作ってみました
http://pastebin.com/Un6Kh3MY
冒頭の2~6行目が設定なので、環境に合わせて変更してください。
$basedirは、基準ディレクトリの指定でこれ以下のファイルを処理します。
$tempfile、$result、$erroutに関してはディレクトリ名だけ変えればいいと思います(途中で削除するので消えてもいいファイル名で)
$messageはそのままですね
ディレクトリ名に全角文字があっても問題ないですが、unicodeだと駄目みたいですね…
おかしな動作をするかもしれないのでバックアップは忘れずにお願いします(対象外のファイルを編集することはないはずですが)
長ったらしいのでPasteBinに貼ってあります
http://pastebin.com/ibNFYA9Q
MHフォルダに対しては動いているので第2階層までは試していませんが、第1階層は動くはずです。
うまく動かないとすると
・5行目の拡張子無し(*.)のみ探している
・18行目の正規表現: ^[0-9]*$ (ファイル中^^になっているのは^が\相当のエスケープ文字なので)
あたりが怪しいです。
バッチの6行目にpauseを入れると画面が自動で消えなくなるので、画面を上にスクロールしてみると何か解るかもしれません。
#書き込み禁止ではないですよね…
a.batを置いているフォルダ以下のフォルダを階梯を保ったまま
ドライブのルートへコピーして試すと上手くゆきました。
(%%~si を %%i に変更したまま)
パスが半角全角混在でかつパス中に空白がある場合の対処は難しいのでしょうか?
秀丸のマクロで作ってみました
http://pastebin.com/Un6Kh3MY
冒頭の2~6行目が設定なので、環境に合わせて変更してください。
$basedirは、基準ディレクトリの指定でこれ以下のファイルを処理します。
$tempfile、$result、$erroutに関してはディレクトリ名だけ変えればいいと思います(途中で削除するので消えてもいいファイル名で)
$messageはそのままですね
ディレクトリ名に全角文字があっても問題ないですが、unicodeだと駄目みたいですね…
おかしな動作をするかもしれないのでバックアップは忘れずにお願いします(対象外のファイルを編集することはないはずですが)
siachanさん
秀丸マクロを使用した回答ありがとうございました。
さっそく試させていただきしました。
結果は完璧です。
最後に__result__.txtが未保存の秀丸として表示されているので
名前を付けて保存することができました。
┌───
(1/36)Z:\フルパス1\1. . .成功
(2/36)Z:\フルパス1\10. . .成功
・
・
(36/36)Z:\フルパス3\9. . .成功
終了
└───
---
ひとつのフォルダ内のメールヘッダー付き複数のメールを特定の文字列(※)をセパレ
ータとしてひとつの連続テキストにしておけば、Sylpheedでそれを使用して複数の
メールをまとめて一気にインポートすることができることがわかりました。
siachanさんのコードをお手本にして、それ対応の出力を作るように自分で変更して
みたいと思います。
(※)
From dummy@xyz.com
siachanさん
秀丸マクロを使用した回答ありがとうございました。
さっそく試させていただきしました。
結果は完璧です。
最後に__result__.txtが未保存の秀丸として表示されているので
名前を付けて保存することができました。
┌───
(1/36)Z:\フルパス1\1. . .成功
(2/36)Z:\フルパス1\10. . .成功
・
・
(36/36)Z:\フルパス3\9. . .成功
終了
└───
---
ひとつのフォルダ内のメールヘッダー付き複数のメールを特定の文字列(※)をセパレ
ータとしてひとつの連続テキストにしておけば、Sylpheedでそれを使用して複数の
メールをまとめて一気にインポートすることができることがわかりました。
siachanさんのコードをお手本にして、それ対応の出力を作るように自分で変更して
みたいと思います。
(※)
From dummy@xyz.com