Batch file .txt文件中的Catch.bat文件变量

Batch file .txt文件中的Catch.bat文件变量,batch-file,text-files,Batch File,Text Files,我有一个简单的问题 是否可以将变量从.bat文件传递到.txt文件?我能在网上找到的只是在文件末尾附加变量或覆盖整个.txt文件。 是否可以在.txt文件中保留{0}、{1}变量捕捉器或类似内容,以便在运行时使用.bat命令将变量发送到这些特定位置的.txt文件 我只是想知道,是否有可能或者正确的方法是覆盖.txt文件,自己在这些地方包含我的变量。你可以在批处理文件中“滥用”变量扩展过程来获得类似的结果 template.txt process.cmd @echo关闭 setlocal enab

我有一个简单的问题

是否可以将变量从.bat文件传递到.txt文件?我能在网上找到的只是在文件末尾附加变量或覆盖整个.txt文件。 是否可以在.txt文件中保留{0}、{1}变量捕捉器或类似内容,以便在运行时使用.bat命令将变量发送到这些特定位置的.txt文件

我只是想知道,是否有可能或者正确的方法是覆盖.txt文件,自己在这些地方包含我的变量。

你可以在批处理文件中“滥用”变量扩展过程来获得类似的结果

template.txt

process.cmd

@echo关闭
setlocal enableextensions disabledelayedexpansion
rem定义将被替换的数据集
设置“数据1=测试”
设置“数据2=这是| |测试| |中的数据”
设置“数据3=另一个测试!”
设置“data4=”
rem读取模板(使用findstr/n检索空行)
对于/f“delims=“%%a in('findstr/n“^”template.txt“)do(
快速眼动取回线
设置“行=%%a”
rem要检索行var中的数据,我们需要延迟扩展
延迟扩展
删除初始编号后的rem输出模板行
命令“失败”的空行上的rem。检测到并
通过回显空行来处理rem
(对于/f delims^=^eol^=%%b in(“!line:::=!”)执行回显(%%b)|回显(
rem取消延迟扩展
端部
)
控制台输出

W:\45820941>进程
元素测试指的是| |测试中的数据||
另外,元素Other test!指向
你需要避免感叹
逃过惊呼:!
非转义感叹号:
;
;<另一个测试中的数据!]>
;
W:\45820941>

可以用批处理变量替换文本文件模板中的特定字符串,但容量有限且难以使用。前提是所需文本中没有“有毒字符”(对
cmd有特殊意义的字符)
),这是可以做到的,但使用为该工作而构建的工具(如
sed
(g)awk
)可能更容易。不过,对于简单的替换,是的,可以做到。
The element !data1! refers to !data2!

Also, the element !data3! points to !data4!


You will need to escape exclamations
    Escaped exclamation     : ^!
    Non escaped exclamation : !

;
;           !data4!
;
W:\45820941>process
The element TEST refers to This is the data in || TEST ||

Also, the element Another test! points to < data inside [Another test!]>


You will need to escape exclamations
    Escaped exclamation     : !
    Non escaped exclamation :

;
;           < data inside [Another test!]>
;

W:\45820941>