Batch file pushd-从cmd处理多个驱动器

Batch file pushd-从cmd处理多个驱动器,batch-file,cmd,network-drive,Batch File,Cmd,Network Drive,我试图找出如何安装一些程序,其中组件位于网络路径上的两个不同驱动器上。但是,每当我使用pushd\\xyz\c$时,我都会得到一个映射驱动器,这意味着我无法使用任何使用的知识,例如c:\install e:\mycomponents.dll。使用pushd命令后,是否可以执行此操作 例如,如何确保驱动器保持不变。我正在安装服务。因此,当我安装服务时,我似乎需要保持路径与.exe的实际位置相同,这意味着我遇到了问题 有没有一种方法可以简单地使用pushd,但同时不实际映射驱动器?与安装服务时一样,

我试图找出如何安装一些程序,其中组件位于网络路径上的两个不同驱动器上。但是,每当我使用
pushd\\xyz\c$
时,我都会得到一个映射驱动器,这意味着我无法使用任何使用的知识,例如
c:\install e:\mycomponents.dll
。使用pushd命令后,是否可以执行此操作

例如,如何确保驱动器保持不变。我正在安装服务。因此,当我安装服务时,我似乎需要保持路径与.exe的实际位置相同,这意味着我遇到了问题

有没有一种方法可以简单地使用pushd,但同时不实际映射驱动器?与安装服务时一样,当我使用
net use
时,我发现在映射的驱动器上安装存在问题,因为可以安装的服务在启动服务时找不到实际的.exe

因此,为了扩展这一点,有没有一种方法可以使用
net use
pushd
或一种组合来解决这个问题,使我可以安装这样的服务:
c:\windows\..\installutil e:\mynode

因此,为了澄清,我需要能够通过它们的相对驱动器(即:\和C:\)以某种方式查看远程机器上的两个驱动器-如果我使用映射驱动器号,则意味着安装服务是一件痛苦的事情,因为我无法使用路径

第1期:

如果使用pushd,则无法在服务器上同时看到两个驱动器号

net use i: %Machine1PathFRM%
pushd %Machine1PathZIP%
i:\installutil /username=ABC /password=abc %ZMN%
popd
第二期:

如果我使用
net use
,那么我可以使用它来安装utils,但在运行服务时,windows找不到本地文件,因为它执行了某种文件映射过程,这确实非常烦人

REM Install Processes Machine 1

REM net use e: %Machine1PathZIP%
REM net use i: %Machine1PathFRM%
REM i:\installutil /username=ABC /password=abc e:\%ZMN%
REM i:\installutil /username=ABC /password=abc e:\%ZPL%

pushd//xyz/c$
还会将当前目录更改为映射的驱动器号

pushd //xyz/c$
for /F "delims=" %%A in ("%cd%") do set "mapDrive=%%~dA"
%mapDrive%\install %mapDrive%:\mycomponents.dll

你真的在使用单任务DOS操作系统吗?或者您只是在windows中使用提示窗口?您的问题现在有点混乱。您应该显示批处理脚本的相关部分如果他使用的是Dos操作系统,它将无法工作:因为extended for batch命令仅在NT版本的windows中可用。CMD.exe比原来的command.com强大得多。@user2284570他不能使用DOS,因为他使用的是
PUSHD
如果他使用的是MS-DOS,情况就是这样。但是还有其他DOS实现。大多数FreeDos应用程序批处理解释器都有Pushd命令。但是for命令的语法仍然与cmd.exe完全不同。此外,他还使用了DOS标记(请看它的描述)。今天,FreeDos似乎比MS-DOS更常用。此外,他们还为MS-DOS环境提供了一个改进的解释器:它被称为4DOS。@user2284570 Pushd,c$,长文件名,一个列出
cmd
的标记,它都指向Windows NT series cmd行和批处理文件。它在批处理文件中运行。从这一行开始,您应该将双百分比更改为单百分比