Windows 用于连接共享和执行应用程序的批处理文件

Windows batch file to connect to share and execute app

我在 Windows 7 x86 上有一个批处理文件 运行ning。我正在尝试编写与共享的连接脚本,然后在完成后执行应用程序。

net use \appserver001\mycompany.ptshare\OPS /user:geek xyz!@# /persistent:yes
echo %errorlevel%
if errorlevel 2 goto message
if errorlevel 1 goto message

start "" "\appserver001\mycompany.ptshare\OPS\OPSapp.exe"
echo %errorlevel%
if errorlevel 2 goto message
if errorlevel 1 goto message

goto end

:message
cls
echo ERROR IN CONNECTING TO SERVER

:end

NET USE 连接是按照命令 window 所说 "The command completed successfully" 建立的。然后当它到达执行应用程序的行时,我收到一条弹出消息 "Invalid location for program!".

我发誓我以前做过他的,但无法弄清楚为什么它不会 运行 我的应用程序。

"Invalid location for program!" 听起来像是来自 OPSapp.exe 本身的错误消息。您可以通过打开任务管理器并在出现错误时检查 OPSapp 是否列在“进程”选项卡中来验证这一点。如果不是这种情况,那么您可以忽略此 post.

的其余部分

有些程序需要从基于驱动器号的路径(例如 X:\etc\app.exe)而不是 UNC 路径(例如 \\srv\etc\app.exe)启动。这样的程序可以在启动时检查它的启动位置,如果它是 UNC 路径而不是它期望的基于驱动器号的路径,则弹出一条错误消息并退出。

这种情况下的解决方法是(暂时)将驱动器盘符映射到网络共享,然后使用它来启动程序。例如,在您的情况下 replace

start "" "\appserver001\mycompany.ptshare\OPS\OPSapp.exe"

pushd "\appserver001\mycompany.ptshare\OPS"
start "" "OPSapp.exe"

如果这仍然不起作用,那么 OPSapp 可能需要的不仅仅是基于驱动器号的路径,可能是某个地方的特定目录结构,或注册表项等 - 换句话说,它可能不是 portable 足以通过路径简单地运行。