3

コンポーネントがネットワーク パス上の 2 つの異なるドライブに存在するプログラムをインストールする方法を見つけようとしています。ただし、使用するたびにpushd \\xyz\c$、マップされたドライブが取得されます。つまり、たとえば を使用する知識を使用できませんc:\install e:\mycomponents.dll。pushd コマンドを使用した後、これを実行できる方法はありますか?

たとえば、ドライブを同じに保つにはどうすればよいですか。サービスのインストール中です。そのため、サービスをインストールするときに、.exe の実際の場所と同じパスを保持する必要があるようです。これは、問題が発生していることを意味します。

単純に pushd を使用すると同時に実際にドライブをマップしない方法はありますか? サービスをインストールするときと同様に、 を使用していたときに、net useマップされているドライブにインストールする際に問題があることがわかりました。これは、インストールできるサービスが起動時に実際の .exe を見つけられないためです。サービス。

これを拡張するために、またはサービスをそのままインストールできる組み合わせを使用してこれを解決する方法はありnet useますpushdc:\windows\..\installutil e:\mynode?

明確にするために、リモートマシン上の両方のドライブを相対ドライブ、つまり E:\ と C:\ で表示できるようにする必要があります-マップされたドライブ文字を使用すると、サービスをインストールするのが面倒になります。使用できないためですパス。

問題 1:

pushd を使用すると、サーバーで両方のドライブ文字が表示されません。

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

問題 2:

これを使用するnet useと、たとえばインストールユーティリティに使用できますが、サービスの実行に関しては、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%
4

1 に答える 1

3

pushd //xyz/c$また、現在のディレクトリをマップされたドライブ文字に変更します。

pushd //xyz/c$
for /F "delims=" %%A in ("%cd%") do set "mapDrive=%%~dA"
%mapDrive%\install %mapDrive%:\mycomponents.dll
于 2013-10-25T09:20:29.930 に答える