• 締切済み

htmlの中身を自動で・・・

こんにちは。 分かりにくいかもしれませんが、助けてください・・・ htmlテキストのある一部分に、あるフォルダの中のファイル名を順番に付けて1ファイルずつ保存したいです。 例えば、フォルダ内にA001.abc、B002.abc、C003.abc・・・といった感じで100ファイルくらい入っているのですが、この1ファイルごとにhtmlファイルを作りたいのです。 htmlの中身は全て同じで、一箇所だけがファイル名になっています。 つまり、A001.abcのファイルのhtmlはそのファイル名の部分をA001.abcにしてA001.htmlというファイルを作り、B002.abcのファイルに対してはhtmlの中のファイル名部分をB002.abcにしてB002.htmlというファイルを作りたいという感じです。 一つ一つすればできるのですが、量が多いので一括でできればうれしいかも・・・ よろしくおねがいします<(_ _)>

みんなの回答

回答No.1

ファイル名よりも前の内容を bef.txt、後の内容を aft.txt として保存し、 FOR /F "usebackq tokens=1,* delims=." %i IN (`dir /b`) DO @( type bef.txt > %i.html echo %i.%j >> %i.html type aft.txt >> %i.html ) で作成可能です。 と、これだけでは何なので。 まずは、共通に使うhtmlのファイル名以前を bef.txt、以降を aft.txtという名前で分割し、 *.abc のあるフォルダに保存します。 例) <html><body>ファイル名</body</html> を作成する場合、 bef.txt <html><body> aft.txt </body></html> コマンドプロンプトを使った事はありますか? スタートメニューから辿っていくと黒い四角いアイコンがあります。 それを起動し、以下のように実行してみてください。 (文字を打った後、改行(エンター)を押すと実行されます。) cd ファイルのあるフォルダ dir /b これで、フォルダ内の全ファイル名を表示する事が出来ます。 その結果が貴方の欲しているファイル名群と等しければ、 FOR /F "usebackq tokens=1,* delims=." %i IN (`dir /b`) DO @( type bef.txt > %i.html echo %i.%j >> %i.html type aft.txt >> %i.html ) を実行してください。改行もこのままで。 このコマンドの意味は、 FOR /F "usebackq tokens=1,* delims=." →繰り返す条件 %i IN (`dir /b`) →dir /bの結果(さっき表示されていたファイル名)を%iに入れる DO @( type bef.txt > %i.html →bef.txtの内容をコピー echo %i.%j >> %i.html →%i(ファイル名)をコピー type aft.txt >> %i.html →aft.txtの内容をコピー ) といった感じです。 さっき表示されたファイル名毎にコピーを繰り返す処理になります。 WindowsXPの場合はコマンドプロンプト上で右クリックして「貼り付け」、 それ以前のWindowsだとコマンドプロンプト上で右クリックだけで貼り付けが出来るはずです。 bef.html と aft.html も出来てしまうのは・・即席なのでご愛嬌という事で。 不要だと思うので削除しちゃってください。 それと、もし万が一元ファイルが壊れてしまっても責任が取れないので・・・ ちゃんとバックアップ取ってから実行してくださいね。

関連するQ&A