gpt4 book ai didi

windows - 带有双引号参数的批处理文件的管理员快捷方式

转载 作者:可可西里 更新时间:2023-11-01 13:29:34 27 4
gpt4 key购买 nike

以一个极其简单的批处理文件为例:

echo hi
pause

将其另存为 test.bat。现在,创建 test.bat 的快捷方式。该快捷方式运行批处理文件,该文件打印“hi”,然后按预期等待按键。现在,向快捷方式的目标添加一些参数。现在您有一个快捷方式:

%path%\test.bat some args

快捷方式像以前一样运行批处理文件。

现在,以管理员身份运行快捷方式。 (顺便说一下,这是在 Windows 7 上。)您可以使用右键单击 -> 以管理员身份运行,或者转到快捷方式的属性并选中高级部分中的框。告诉 UAC 它没问题,然后快捷方式再次按预期运行批处理文件。

现在,更改快捷方式目标中的参数以添加双引号:

%path%\test.bat "some args"

现在以管理员身份尝试快捷方式。这次不行了!命令窗口弹出和消失的速度太快以至于看不出任何错误。我尝试将 > test.log 2>&1 添加到快捷方式,但在这种情况下没有创建日志。

尝试运行相同的快捷方式(带双引号)但不是以管理员身份运行。它可以很好地运行批处理文件。因此,该行为似乎不是因为双引号参数,也不是因为它以管理员身份运行。这是两者的一些奇怪的组合。

我还尝试从管理员的命令窗口运行相同的命令。这按预期运行了批处理文件,没有错误。从命令窗口运行快捷方式会生成一个新的命令窗口,该窗口闪烁并消失。很明显,问题是由管理员、快捷方式和双引号共同引起的。

我完全被难住了,有人知道发生了什么事吗?我也想要一个解决方法。

最佳答案

我刚刚对此运行了 Process Monitor,这是我所看到的:

以用户身份运行:

cmd /c ""C:\Users\Sunbelt\Desktop\test.bat" "some args""

以管理员身份运行:

"C:\Windows\System32\cmd.exe" /C "C:\Users\Sunbelt\Desktop\test.bat" "some args"

出于某种原因,Run as Admin 案例没有引用整个命令。它似乎正在尝试运行命令:

C:\Users\Sunbelt\Desktop\test.bat" "some args

我猜想因为第一个空格被引用了,所以它实际上是在尝试运行以下命令:

"C:\Users\Sunbelt\Desktop\test.bat some" args

在 Process Monitor 日志中,“C:\Users\Sunbelt\Desktop\test.bat some”有一个文件系统条目“NO SUCH FILE”。我不知道为什么以管理员身份运行时会有所不同,但这似乎正在发生。

关于windows - 带有双引号参数的批处理文件的管理员快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com