0

HTMLコードを含むテキストファイルがたくさんあります。例えば:

Some random text....
..
...
....
<tag1>some more random text</tag1>
....
...
..

スクリプトを実行して各テキスト ファイルを調べ、タグ間の各行を同じフォルダー内の新しいテキスト ファイルに移動し、元のファイルから削除する必要があります。

したがって、最終的な結果は、1 つのファイルがなく<tag1>、別のファイルが<tag1>.

私は自分自身を十分に明確にしたことを願っています。これはまったく可能ですか?

4

1 に答える 1

2

IF (そして、太字、イタリック体、大文字のIF<tag1>...</tag> ) 各タグが 1 行に表示され、同じ行に他のコンテンツがないことを保証でき.

編集- いくつかのバグを修正し、実際に動作するようになりました:-)

@echo off
for %%F in (*.txt) do (
  echo processing %%F
  findstr /rc:"^ *<tag1>.*</tag1> *$" "%%F" >"%%~nF.tag1%%~xF"
  findstr /rvc:"^ *<tag1>.*</tag1> *$" "%%F" >"%%~nF.new%%~xF"
  >nul move /y "%%~nF.new%%~xF" "%%F"
)

このソリューションは、タグ属性をかなり簡単に処理できるように拡張できます。

しかし、私はあなたの問題が本当にそれほど単純であることを真剣に疑っています. 有効な HTML コンテンツには、複数の行にまたがるタグを含めることができます。また、1 つの行に複数のタグを含めることができます。

Windows のネイティブ バッチは、一般的にテキスト処理がかなりお粗末で、HTML や XML ではさらにひどいものです。gnu sed for Windows のような堅牢なテキスト処理を備えたサードパーティ ツールを入手することを強くお勧めします。または、HTML を処理するために特別に設計されたツールを入手してください。

于 2012-07-31T21:21:16.513 に答える