windows - 将带有 '&' 的路径传递给批处理文件

标签 windows batch-file path cmd

我正在尝试将路径从另一个程序传递到批处理文件。另一个程序使用 BASIC 作为脚本语言。

因此,我通过 Shell() 命令调用批处理文件。

在 shell 命令中,我试图传递一个带有符号“&”的路径。但是,当它到达批处理文件时,批处理文件将 & 视为一种转义序列(我认为)。

例如:

路径:C:\Documents\R&D\Files

Shell("runscript.bat "C:\Documents\R&D\Files"")

在批处理文件中:

variable=~1
echo %variable%

我得到以下输出:

C:Documents\R

更新

但是,如果我使用像 C:\Documents\RD\Files 这样的路径

此路径将通过 find 得到,echo 将打印:

C:\Documents\RD\Files

最佳答案

我想你想使用不带引号的变量。(将它括在引号中不会给你带来任何问题)。然后你需要延迟扩展(并使用 ! 而不是 % 访问变量):

set "variable=%~1"
echo "%variable%"
setlocal enableDelayedExpansion
echo !variable!

这里我假设第一个参数包含 &

另一个选项是 for/f :

for /f %%a in ("%~1") do echo %%a

关于windows - 将带有 '&' 的路径传递给批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112066/

相关文章:

c++ - 带串口的 Win32 IOCP 不工作

sql - Powershell SQLCMD

java - 如何获取正在运行的 JAR 文件的路径?

c++ - Windows GetDIBits 不返回预期值

c# - arp -a 和路由打印

Python GTK 3+ 控制关闭窗口

windows - 检测通过cmd播放的媒体播放器

java - 使用 Runtime.exec 运行批处理文件而不使用 cmd.exe

node.js - 如何从路由器文件引用 "public"静态文件夹中的文件夹?

php在windows上包含路径