Batch file 批转义变量
我有一段代码:Batch file 批转义变量,batch-file,Batch File,我有一段代码: for /F "tokens=*" %%A in (myfile.txt) do ( echo echo %%A ^>^>myfile.txt>>myfile.bat ) 正如你们中的一些人所看到的,这段代码读取myfile.txt并创建myfile.bat,当打开它时会创建原始myfile.txt的精确副本。当myfile.txt包含特殊字符(如>)时,就会出现问题。如何对%%A变量进行转义 非常感谢您的帮助。我有一个想法:使用Certutil
for /F "tokens=*" %%A in (myfile.txt) do (
echo echo %%A ^>^>myfile.txt>>myfile.bat
)
正如你们中的一些人所看到的,这段代码读取myfile.txt并创建myfile.bat,当打开它时会创建原始myfile.txt的精确副本。当myfile.txt包含特殊字符(如>)时,就会出现问题。如何对%%A变量进行转义
非常感谢您的帮助。我有一个想法:使用
Certutil
命令对文本文件进行编码,然后像此批处理脚本一样再次生成:
@echo关闭
设置“MyTxtFile=myfile.txt”
对于(%MyTxtFile%)中的%%i,请执行以下操作(
设置“MyBatchFile=%%~ni.bat”
设置“TempFile=%%~ni.B64”
设置“NewFile=%%~ni_uu%%~xi”
)
@对于/f%%i in(“certutil.exe”)如果不存在,请执行“%%~$path:i”(
未找到echo CertUtil.exe。
暂停
退出/b
)
Rem将文本文件编码为临时文件
Certutil-编码“%MyTxtFile%”“%TempFile%”nul 2>&1
(
回声@回声关闭
将“%MyTxtFile%”的标题生成代码回显到“%NewFile%”
echo CERTUTIL-f-解码“%%~f0”“%NewFile%”^>nul 2^>^&1
回波出口
)>%MyBatchFile%
@复制“%MyBatchFile%”/b+“%TempFile%”/b>nul 2>&1
删除“%TempFile%”编号2>&1
超时/T 2/NoBreak>nul和exit
编辑
此代码可以根据您最后的评论生成所需内容test>>Hello
:
@echo关闭
标题生成代码“myfile.txt”到“myfile\uux.txt”
CERTUTIL-f-解码“%~f0”我的文件“>nul 2>&1
出口
-----开始证书-----
dGVzdCA+PiBIZWxsbw0KDQo=
-----结束证书-----
我有一个想法:使用Certutil
命令对文本文件进行编码,然后像批处理脚本一样再次生成它:
@echo关闭
设置“MyTxtFile=myfile.txt”
对于(%MyTxtFile%)中的%%i,请执行以下操作(
设置“MyBatchFile=%%~ni.bat”
设置“TempFile=%%~ni.B64”
设置“NewFile=%%~ni_uu%%~xi”
)
@对于/f%%i in(“certutil.exe”)如果不存在,请执行“%%~$path:i”(
未找到echo CertUtil.exe。
暂停
退出/b
)
Rem将文本文件编码为临时文件
Certutil-编码“%MyTxtFile%”“%TempFile%”nul 2>&1
(
回声@回声关闭
将“%MyTxtFile%”的标题生成代码回显到“%NewFile%”
echo CERTUTIL-f-解码“%%~f0”“%NewFile%”^>nul 2^>^&1
回波出口
)>%MyBatchFile%
@复制“%MyBatchFile%”/b+“%TempFile%”/b>nul 2>&1
删除“%TempFile%”编号2>&1
超时/T 2/NoBreak>nul和exit
编辑
此代码可以根据您最后的评论生成所需内容test>>Hello
:
@echo关闭
标题生成代码“myfile.txt”到“myfile\uux.txt”
CERTUTIL-f-解码“%~f0”我的文件“>nul 2>&1
出口
-----开始证书-----
dGVzdCA+PiBIZWxsbw0KDQo=
-----结束证书-----
以下注释代码片段可能会有所帮助(请参阅):
输出:
==> .\so\46134196.bat
==> type myfile46134196.bat
echo test^>^>hello >>myfile46134196ou.txt
==> type myfile46134196in.txt
test>>hello
==> type myfile46134196ou.txt
test>>hello
==>
更多资源(必读,不完整):
- (命令参考)
- (有用的特殊性)
- (
等特殊页面)%A
- (专页)
- (
等特殊页面) - (
插入符号)^
- 以下注释代码片段可能会有所帮助(请参阅):
输出:
==> .\so\46134196.bat
==> type myfile46134196.bat
echo test^>^>hello >>myfile46134196ou.txt
==> type myfile46134196in.txt
test>>hello
==> type myfile46134196ou.txt
test>>hello
==>
更多资源(必读,不完整):
- (命令参考)
- (有用的特殊性)
- (
等特殊页面)%A
- (专页)
- (
等特殊页面) - (
插入符号)^
有效负载
,然后将其自身删除?不,我不能。这只是一个更大程序的一小部分。您可以将每个百分比符号翻倍以避开它们echo echo%%%A^>^>myfile.txt>>myfile.bat
你能提出你的问题并发布你的myfile.txt
的一些内容,并在你的目标中进行更多的解释吗?@Hackoo测试内容是:test>>hello处理每一行都需要转义,为什么不把这个文件附加到一个小存根上,这个存根分割了有效载荷
,然后删除它自己呢?不,我不能。这只是一个更大程序的一小部分。您可以将每个百分比符号翻倍以避开它们echo echo%%%A^>^>^>myfile.txt>>myfile.bat
你能提出你的问题并发布你的myfile.txt
中的一些内容吗?expalin更多关于你的目标吗?@Hackoo测试内容是:test>>HelloNo,对于这个程序我需要echo^>^>^>^>>>myfile.txt格式no,对于这个程序我需要echo^>^>^>>myfile.txt格式