windows - 当传递的参数有引号时使用 DOS 启动命令

标签 windows command-line batch-file

我有一个关于 DOS 启动命令的问题。 我已经读过这个主题: 使用 DOS“启动”命令和传递给启动程序的参数 Using the "start" command with parameters passed to the started program

但我的问题有点不同。

我有这个问题:我需要传递需要引用的路径。

例如,如果路径没有引号,则可以正常工作:

启动 ""app.exe -选项 c:\myapp\myfile.txt

但如果路径有双引号,它就不起作用。

我的 BATCH 文件中有这一行:

开始 ""myapp.exe -option %mypath%

当 %mypath% 包含双引号(名称中包含空格或其他字符的路径)时,启动命令会返回非常奇怪的结果。

谢谢 桑德罗

最佳答案

通常使用带引号的参数没有问题,但如果您的应用程序路径也有引号,您就会遇到问题。

然后你需要添加一个额外的CALL语句。

start "" app.exe -option c:\myapp\myfile.txt    - Works
start "" app.exe -option "c:\myapp\myfile.txt"    - Works
start "" "app.exe" -option c:\myapp\myfile.txt    - Works

start "" "app.exe" -option "c:\myapp\myfile.txt"    - Don't works
start "" CALL "app.exe" -option "c:\myapp\myfile.txt"    - Works

关于windows - 当传递的参数有引号时使用 DOS 启动命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267278/

相关文章:

java - 如何在 Java 中制作 Windows 7 工具提示

python - 从 python 编辑 .RAR 文件注释

java - Mac 和 Windows 的 "Valid System process"是什么? (java进程构建器)

node.js - 将工具安全迁移到 Homebrew

java - 来自 java 命令行的 Maven 依赖插件的类路径文件

string - bat文件替换文本文件中的字符串

c - 尝试在Windows下用cygwin编译Asterisk,找不到libuuid

command-line - 从命令行获取 NuGet.exe 版本

batch-file - 如何将字符串列表作为参数传递给批处理脚本?

php - 从 powershell 传递到批处理时丢失部分 url