テキストファイル内の文字列でファイル管No.31811
o_hiro さん 12/11/27 14:17
 
よろしくお願いします。

秀丸エディタで、一行につきひとつの商品名を入力。
1つのテキストファイルで、1,000行(1,000商品名)が書かれたファイルがあります。

これとは別に、商品名を筆頭に枝番をつけたファイルが2,000個。
これはひとつのフォルダに入っています。

テキストファイル内に書かれた商品名のつくファイルを、上記フォルダから別フォル
ダに移動したいのですが、こういうことは可能でしょうか?

[ ]
RE:31811 テキストファイル内の文字列でフNo.31813
秀丸担当 さん 12/11/27 15:55
 

マクロを作れば、プログラムを組むようにしていろいろできると思います。
プログラムを組むという点では秀丸マクロでなくてもvbsを書くなど、いろいろ
方法はあると思います。

1つ思いついた簡単な方法としては、バッチファイルのように書き換えて保存す
ると、プログラミングしなくても簡単にできそうです。

例えば以下のテキストがあったとします。

商品A
商品B
商品C

これを元に、先頭と末尾に記述を追加して、以下のように書き換えます。

copy c:\コピー元\商品A*.* c:\コピー先
copy c:\コピー元\商品B*.* c:\コピー先
copy c:\コピー元\商品C*.* c:\コピー先

そして、名前を付けて保存で、例えばtest.batという名前で保存します。
そして、エクスプローラからtest.batをダブルクリックして実行すると、コピー
されます。
コピーではなく移動の場合は「copy」の部分を「move」にするといいです。
拡張子がある場合は*.*の部分を*.txtなどにするといいです。


バッチファイルのように一発で書き換えるのは、正規表現を使った置換で一発で
やる方法があります。
置換ダイアログで、

 検索文字列:^(.+)
 置換文字列:copy c:\\コピー元\\\1*.* c:\\コピー先
 正規表現をON

として全置換すると一発でできます。


でも正規表現を考えるのも難しいとすると、キー操作の記録と再生が便利です。
以下のような感じで1行分の書き換えのの操作を記録します。

1.「商品A」の行頭にカーソルをもっていく。
2.Shift+F1で記録開始する。(標準のキー割り当ての場合)
3.入力したり、Endキーで行末に移動してさらに入力して、
 「copy c:\コピー元\商品A*.* c:\コピー先」というように書き換える。
4.Homeキーで行頭に移動したり、↓キーで次の行に移動したりして、
 「商品B」の行頭にカーソルを合わせる。
5.Shift+F1で記録終了する。(標準のキー割り当ての場合)

こうやって記録しておくと、あとは、Shift+F2(標準のキー割り当ての場合)を
押しっぱなしにすると、記録した操作を何度も再生できます。

[ ]
RE:31813 テキストファイル内の文字列でフNo.31814
o_hiro さん 12/11/27 17:13
 
秀丸担当 さん、ありがとうございます。

最初のバッチファイルでうまくいきました。
移動元のファイル名は、商品名そのものではなく連番がついてきているものもあった
ので心配でしたが、問題なく移動してくれました。

本当にありがとうございました。

[ ]