Vis*_*hal 27 windows command-line batch-file
我正在编写一个批处理文件,我需要输出一个包含'!'的字符串 到另一个文件.但当我将该字符串回显给另一个文件时,它会删除"!" 从输出.
例如:输入:
set LINE=Hi this is! output
echo !LINE!>>new_file.txt
Run Code Online (Sandbox Code Playgroud)
new_file.txt中的输出是:
Hi this is output
Run Code Online (Sandbox Code Playgroud)
此外,如果输入是
set LINE=Hello!! this is output!!
echo !LINE!>>new_file.txt
Run Code Online (Sandbox Code Playgroud)
new_file.txt中的输出:
Hello
Run Code Online (Sandbox Code Playgroud)
因此,它跳过了!(感叹号)从输出到new_file.如果我使用%LINE%,那么它只是在输出文件中显示"echo is on".
请建议一种方法来克服这个问题.
jeb*_*jeb 18
如果您启用了延迟扩展并想要输出感叹号,则需要将其转义.
逃避感叹号不需要,一个或两个插入符号,具体取决于放置位置.
@echo off
set test1=Test1!
setlocal EnableDelayedExpansion
set test2=Test2^^!
set "test3=Test3^!"
echo !test1!
echo !test2!
echo !test3!
Run Code Online (Sandbox Code Playgroud)
在DOS批处理中解释了块!var!和%var%块之间的区别:为什么我的set命令导致什么都没有存储?
可以在Windows命令解释器(CMD.EXE)如何解析脚本中找到批处理解析器的说明?
| 归档时间: |
|
| 查看次数: |
41816 次 |
| 最近记录: |