何百もの.htmファイルがあります。彼らはすべての異なるだが、それらすべての共有終わり近くに同様のリンク:バッチ:インタースティシャル文字列を検索して同じ行にHTMLタグを連結
<a href="123-04.htm">Please Consult 345.</a>
「123から04」のファイル名と「345」は、セット内のすべての.htmのファイル間で異なるかもしれませんが、 「ご相談ください」は常に同じです。
<a name="Tag"></a><a href="123-04.htm">Please Consult 345.</a>
I:
は、だから私は、次の生成するために、文字列「相談してください」と、その各ファイルで発生する行の先頭に<a name="Tag"></a>
を追加するために、すべての.htmファイルを検索しますいくつかのことを試しました。最初に文字列を見つけることができるfindstrを使っていましたが、行番号を正確に報告することはできませんでした。これは常に1行目を報告します。読んだところでは、これは.htmファイルがUNIXであるためだと思います。私はそれがどういう意味か分かりませんが、findstrと干渉することを読んでいます。もう一度、初心者、私の謝罪。
このサイトで見つけた解決策に基づいて、for /f
を使用してファイルをステップしたサンプルスクリプトを作成しましたが、私は何かに気づいたと思いますが、どうか "見てください" "文字列、それは行の中央にあるためです。区切り文字やトークンの指定に使用できるものはありません。スクリプトをコピーし、新しいファイルへのすべての行、それはステッピングている間、それは特定の文字列を見つけた場合、それは新しいテキストファイルにその行の下に別の文字列を挿入します:
@echo off
setlocal enabledelayedexpansion
for /f %%x in (sample.txt) do (
set line=%%x
echo %%x>>newfile.txt
call :ADD
)
:ADD
if /I "!line!"=="1" (
echo inserttext>>newfile.txt
)
sample.txtのはわずか10が含まれています各行にはそれぞれ独自の番号(1〜10)があります。これはもちろんのことですが、私は概念の証明で道を始めると思いますが、それは私に必要なものではありません。私はIF文がワイルドカードを使っていないことを知っているので、これを調べるための正しい方法はわからない。検索する必要がある文字列は、サンプルのように最初の行ではなく、行の中央にある。TXT。
言うまでもなく、私は立ち往生しています。私はこれをバッチに入れましたが、PowerShellや、Windows上で本質的に利用可能な何かを使用することができます。これは仕事のためのものなので、特別なものを手に入れるのは簡単ではありません。これがMATLABやFORTRANなのか、これまでに広範囲に使用していたものなのか分かりましたが、利用できるツールは十分に知識がありません。私は詳細な質問を提供し、既に存在する答えを見つけようとした私の試みにデュー・ディリジェンスを示してくれることを願っています。
「」は固定文字列か「タグ」は「123-04.htm」ですか? – pandemic
あなたは実際に「私はいくつか試しました」という文を使って試したことを説明しました。 +1だけ。 – SomethingDark
HTML操作にバッチスクリプトを使用しないことをお勧めします。ネイティブにHTMLを処理できる言語を使用する。 Windowsの 'cmd' /バッチはHTMLを通常のテキストファイルとして扱うので、データ構造が中断する可能性があります。 – aschipfl