テキストファイルを読み取り、引用符を変数で新しいファイルに置き換えるバッチ


1

次の形式でデータベースから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 % >

次に、30percent.txt35percent.txt40percent.txt、最後に50percent.txtファイルについて繰り返します。

2番目の質問
5つの新しいファイルを一緒に追加したい


Excelを使用している場合、ここで行うのがはるかに簡単になります。

一般に、一度に2つの質問をすることはお勧めしません。各質問は個別に質問する必要があります。
ボブ

ファイルを一緒に追加するのは簡単ですcopy file1+file2+file3+...+fileN bigfile
SeanC

回答:


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て追加することもできます(>>)(現在のディレクトリ内のすべてのファイルをアルファベットの昇順で並べ替えます):

for %%a in (*.txt) do (
    type %%a>>destination.txt
)

0

OSを指定しないので、sed利用可能であれば機能するソリューションを提供します。

$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is \1 25 % >/' < 25Percent.TXT

OSは間接的に指定されています。参照:en.wikipedia.org/wiki/Batch_file
mnmnc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.