如果我运行带有&或者其他一些具有特殊含义的角色,我尝试在脚本中使用它,我该如何逃避呢?
例如,如果我与同一台计算机上的某个人共享本地帐户,并且我的用户名为John&马特。将批处理文件放在Desktop目录中,如下所示:
@ECHO OFF
echo %~dp0
它会返回这样的内容:
C:\Users\John
The system cannot find the path specified.
如果我继续努力,从那时起整个剧本就会中断。 如果有人知道如何让整条路径出现,我会很感激。
编辑:我之前没有说清楚这一点。对于那个很抱歉。不是很擅长解释,但如果我尝试在变量中使用%~dp0,并在其上堆叠更多东西,比如SETLOCAL
set loc=%~dp0
rename "%~dp0Dir\Dir1\Dir2\File.txt" "Something.txt"
如果我在声明变量来修复该问题时添加另一组引号,则可能会混淆重命名命令。
我尝试创建的批处理文件基本上删除了批处理文件所在的文件,将其替换为位于批处理文件所在目录内的子文件夹中的另一个文件,并将其重命名为其他文件。
答案 0 :(得分:2)
如果您想要在不附上引号的情况下可靠地ECHO值,那么您可以使用以下任一策略:
test payload
答案 1 :(得分:0)
@ECHO OFF
echo %dp0
将返回 dp0 - 我想你的意思是%~dp0; - )
但是,echo "%~dp0"
会输出C:\Users\John & Matt\...
顺便说一句,它是 \而不是/ 。
Windows:\
Unix / Linux:/
我没有迂腐,这有时会导致严重的问题(例如here)。