windows 为什么这个.bat程序认为路径存在,而实际上不存在?

tf7tbtn2  于 2022-11-18  发布在  Windows
关注(0)|答案(1)|浏览(172)

不是我的代码只是我被指派去解决/修复的东西。
C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE不存在-我也检查了隐藏文件。C:\Program Files (x86)\Microsoft Office存在,但不是root\Office16\MSACCESS.EXE。然而,程序仍然跳转到LOADITUP而不是LOADITUP2

if exist C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE GOTO LOADITUP
if not exist C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE GOTO LOADITUP2

:LOADITUP
echo "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "c:\la20aps\%1\fbLA20APS.accdb" /runtime /cmd %1 >startup.bat
start "closeme" startup
goto END

:LOADITUP2
echo "C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE" "c:\la20aps\%1\fbLA20APS.accdb" /runtime /cmd %1 >startup-new32.bat
start "closeme" startup-new32
goto END

:END
exit
pause
b5lpy0ml

b5lpy0ml1#

执行时

if exist C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE GOTO LOADITUP

批处理发现C:\Program不存在,因此忽略
然后它尝试

if not exist C:\Program

它实际上并不存在,所以它尝试执行

Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE GOTO LOADITUP2

该指令是:LOADITUP例程。
如果您从“快捷方式”运行,错误消息将不可见(它们会出现,但批处理会继续并清除它们)。您 * 可以 * 在语句后放置一个pause,并跟踪错误,但最好是open a 'command prompt',并从那里运行批处理,这样窗口将保持打开状态,并显示任何(错误)消息。

相关问题