![テキストファイルを読み取り、引用符を変数に置き換えて新しいファイルにするバッチ](https://rvso.com/image/1316775/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%81%E5%BC%95%E7%94%A8%E7%AC%A6%E3%82%92%E5%A4%89%E6%95%B0%E3%81%AB%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%81%88%E3%81%A6%E6%96%B0%E3%81%97%E3%81%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%81%99%E3%82%8B%E3%83%90%E3%83%83%E3%83%81.png)
私のデータベースから、次の形式で 5 つの個別の .txt ファイルに保存した顧客のピザ リストがあります。
Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"
各リストは引用符で囲まれた電話番号であり、リストの長さはそれぞれ異なります。
最初の質問
5 つのテキスト ファイル内の各引用符で置き換えたい変数のセットが 2 つあります。2
つの変数は次のようになります。
Var A = < Discount Pizza price for phone number is "
Var B = " 25 % >
テキスト ファイルの各行を読み取り、引用符を変数に置き換えて次の内容を別のテキスト ファイルに書き込むバッチ ファイルを実行したいと思います。
New Filename = 25Percentfinished.TXT
< Discount Pizza price for phone number is "555-1211" 25 % >
< Discount Pizza price for phone number is "555-1212" 25 % >
< Discount Pizza price for phone number is "555-1223" 25 % >
それから私は繰り返します30パーセント.txt、35パーセント.txt、40パーセント.txtそして最後に50パーセント.txtファイル。
2番目の質問
5つの新しいファイルを一緒に追加したいのですが
答え1
単純なループですfor
:
for /f "tokens=*" %%a in (25Percent.txt) do (
echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)
使用方法についてはを参照してくださいfor /?
。これはファイルを 1 行ずつ処理し、行を変数に読み込み%%a
、変更された行を他のファイルに追加します。<
と はコマンド プロンプトで特別な意味を持つため、>
でエスケープされます(と を^
作成)。 も特殊文字であるため、で「エスケープ」されますが、他の文字のようにエスケープすることはできません。^<
^>
%
%%%
次のように複数のテキスト ファイルを組み合わせることができます。
copy file1.txt + file2.txt + file3.txt destination.txt
または、ループしてtype
append( >>
) を実行することもできます (これにより、現在のディレクトリ内のすべてのファイルがアルファベットの昇順でソートされて結合されます)。
for %%a in (*.txt) do (
type %%a>>destination.txt
)
答え2
OS を指定していないので、利用可能な場合は機能するソリューションを提供しますsed
。
$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is \1 25 % >/' < 25Percent.TXT