批量读取文本文件并将引号用变量替换到新文件中

批量读取文本文件并将引号用变量替换到新文件中

我有客户披萨列表,我将其保存到数据库中的 5 个单独的 .txt 文件中,格式如下:

Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"

每个列表都是一个引号中的电话号码,并且每个列表的长度各不相同。

第一个问题
我有两组变量,我想用 5 个文本文件中的每个引文替换它们。
这两个变量如下:

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%.txt35%.txt40%.txt最后50%.txt文件。

第二个问题
我还想将这 5 个新文件附加在一起

答案1

这是一个简单的for循环:

for /f "tokens=*" %%a in (25Percent.txt) do (
    echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)

请参阅for /?用法。这将逐行处理文件,将行读入变量%%a并将修改后的行附加到另一个文件。<>使用 进行转义^(使^<^>),因为它们在命令提示符中具有特殊含义。使用%进行“转义”,%%%因为它也是一个特殊字符,但不能像其他字符一样进行转义。


您可以像这样合并多个文本文件:

copy file1.txt + file2.txt + file3.txt destination.txt

或者您可以循环type并附加(>>)(这将合并当前目录中的所有文件,按字母升序排列):

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

答案2

您没有指定操作系统,因此如果您有sed可用的操作系统,我将提供一个可行的解决方案。

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

相关内容