【问题标题】:Why using QUOTE in Windows start command line gives an error?为什么在 Windows 启动命令行中使用 QUOTE 会出错?
【发布时间】:2019-03-23 22:42:43
【问题描述】:

这是我实际批处理文件的更简单的实现,但它们的目的是说明我的问题...

我有一个批处理文件 b.cmd,它只是简单地回显输入参数:

REM - *** B.CMD
@echo off

echo %1
echo %~1

我有另一个启动 b.cmd 的批处理文件 a.cmd:

REM - *** A.CMD
@echo off

set Location=C:\Users\yogi\AppData\Local\Temp\test
REM - This location could contain spaces, hence on the next line
REM - I am surrounding %Location%\b.cmd with QUOTEs.
start "" "%Location%\b.cmd" "Input Argument 1"

如果我执行 a.cmd,我会得到错误:

'C:\Users\yogi\AppData\Local\Temp\test\b.cmd"  "Input' is not recognized as an internal or external command,
operable program or batch file.

但是,如果我从 a.cmd 中删除 %Location%\b.cmd 周围的 QUOTE,我会得到这个(如我所料):

"Input Argument 1"
Input Argument 1

我做错了什么?我需要 %Location%\b.cmd 周围的引号以及输入参数,因为它们都可能包含空格。

已编辑

这是 a.cmd 的输出。 Echo 已开启,并且 b.cmd 被调用且周围没有引号

C:\Users\yogi\AppData\Local\Temp\test>a.cmd

C:\Users\yogi\AppData\Local\Temp\test>set Location=C:\Users\yogi\AppData\Local\Temp\test

C:\Users\yogi\AppData\Local\Temp\test>start "" C:\Users\yogi\AppData\Local\Temp\test\b.cmd "Input Argument 1"

C:\Users\yogi\AppData\Local\Temp\test>

这是 b.cmd 的输出:

C:\Users\yogi\AppData\Local\Temp\test>echo "Input Argument 1"
"Input Argument 1"

C:\Users\yogi\AppData\Local\Temp\test>echo Input Argument 1
Input Argument 1

C:\Users\yogi\AppData\Local\Temp\test>

这是 a.cmd 的输出。 Echo 已开启,并且 b.cmd 被调用并带有引号

C:\Users\yogi\AppData\Local\Temp\test>a.cmd

C:\Users\yogi\AppData\Local\Temp\test>set Location=C:\Users\yogi\AppData\Local\Temp\test

C:\Users\yogi\AppData\Local\Temp\test>start "" "C:\Users\yogi\AppData\Local\Temp\test\b.cmd" "Input Argument 1"

C:\Users\yogi\AppData\Local\Temp\test>

这是 b.cmd 的输出:

'C:\Users\yogi\AppData\Local\Temp\test\b.cmd"  "Input' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\yogi\AppData\Local\Temp\test>

【问题讨论】:

标签: batch-file


【解决方案1】:

这对我有用。

start cmd /C ""%Location%\b.bat" "Input Argument 1""

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-13
    • 2021-08-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2017-04-24
    相关资源
    最近更新 更多