如何在命令行中转义特殊字符
阅读 3:00·字数 901·发布
前提
阅读本节的前提是对转义概念有所掌握,你可以查看编程教程的转义,转义字符,转义序列介绍一节来了解相关信息。
在命令提示符中转义特殊字符
在 Windows 命令提示符中,你可以使用转义字符^
来转义特殊字符。
下面,我们使用命令echo
,告知用户查看环境变量PATH
的方法,其中,%
需要书写为^%
进行转义,如果直接写为echo %PATH%
,将导致输出环境变量PATH
的值。
echo 请使用 echo ^%PATH^% 查看环境变量 PATH
请使用 echo %PATH% 查看环境变量 PATH
Windows 命令提示符不支持在 " 中使用 ^ 进行转义
需要注意的是,你无法在"
中使用转义字符^
进行转义,他将显示其自身。
再次演示命令echo
,并分别使用'
和"
括住一些内容,可以看到输出结果的不同。
echo 汤姆说 '使用 echo ^%OS^% 查看环境变量 OS'
汤姆说 '使用 echo %OS% 查看环境变量 OS'
echo 汤姆说 "使用 echo ^%OS^% 查看环境变量 OS"
汤姆说 "使用 echo ^%OS^% 查看环境变量 OS"
如何在 Windows 批处理文件中转义 %?
在bat
批处理文件中,对%
的转义比较特别,需要使用%%
而不是^%
。
在 PowerShell 中转义特殊字符
在 PowerShell 中,你可以使用转义字符`
来转义特殊字符。
这里,使用命令Write-Output
来显示一段信息,其中`n
和`t
分别被转义为换行符和制表符。
Write-Output "人员名单`n`t咸蛋超人`n`t甜蛋超人"
人员名单
咸蛋超人
甜蛋超人
在 UNIX/Linux/macOS 中转义特殊字符
在 UNIX/Linux/macOS 的 Shell 程序中,通常可以使用转义字符\
转义特殊字符。
下面的\
将转义为空格,Shell 将跳转至含有空格的文件夹custom lib
。
cd custom\ lib
不支持在单引号字符串中进行转义
PowerShell 以及 UNIX/Linux/macOS 中的大部分 Shell 程序,仅支持在双引号字符串,或可隐式转换为字符串的文字中进行转义,单引号中的转义字符将表示其自身,没有转义效果。
将 PowerShell 示例中的两个"
去掉,输入的文字将隐式的转换为字符串(不能包含空格),其输出结果和之前一致。
Write-Output 人员名单`n`t咸蛋超人`n`t甜蛋超人
人员名单
咸蛋超人
甜蛋超人
将 PowerShell 示例中的"
改为'
,字符`
不再具有转义的作用。
Write-Output '人员名单`n`t咸蛋超人`n`t甜蛋超人'
人员名单`n`t咸蛋超人`n`t甜蛋超人