拿一个极其简单的批处理文件:
echo hi
pause
Run Code Online (Sandbox Code Playgroud)
保存为test.bat.现在,创建test.bat的快捷方式.快捷方式运行批处理文件,打印"hi"然后按预期等待按键.现在,向快捷方式的目标添加一些参数.现在您有一个快捷方式:
%path%\test.bat some args
Run Code Online (Sandbox Code Playgroud)
快捷方式像以前一样运行批处理文件.
现在,以管理员身份运行快捷方式.(顺便说一下,这是在Windows 7上.)您可以使用右键单击 - >以管理员身份运行,或者转到快捷方式的属性并选中高级部分中的框.告诉UAC没关系,快捷方式再次按预期运行批处理文件.
现在,更改快捷方式目标中的参数以添加双引号:
%path%\test.bat "some args"
Run Code Online (Sandbox Code Playgroud)
现在以管理员身份尝试快捷方式 这次不行!弹出一个命令窗口,并且消失得太快,无法看到任何错误.我尝试将> test.log 2>&1添加到快捷方式,但在这种情况下不会创建日志.
尝试运行相同的快捷方式(使用双引号)但不是管理员.它运行批处理文件很好.因此,似乎行为不是因为双引号参数,而是因为它以管理员身份运行.这是两者的奇怪组合.
我还尝试从管理员的命令窗口运行相同的命令.这按预期运行批处理文件而没有错误.从命令窗口运行快捷方式产生了一个新的命令窗口,该窗口闪烁并消失.显然,问题是由管理员,快捷方式和双引号组合引起的.
我完全难过,有没有人知道发生了什么?我也想要一个解决方法.