web-dev-qa-db-ja.com

相対ターゲットパスを使用したNetUseコマンド

いくつかのフォルダーにバッチファイルがありますが、このファイルでは、Windows 7ではユニット(ドライブ)のプロパティが異なるため、subst T: .の古いNet Useコマンドを置き換える必要があります。

ただし、Net Useでは次のような絶対パスしか使用できないことがわかりました。

Net Use T: \\path\to\folder

絶対パスを操作できませんが、Net Use T: .は許可されていません(エラーがスローされます)。

現在の.batディレクトリを使用するようにフォルダからNet Useコマンドを実行する方法はありますか?

私にとって最善の解決策は、バッチコマンドで絶対修飾パス(\ path\to\folder)を取得できるようにすることだと思います。 (この場合、%cd%およびchdir変数は機能しません)。 Net Useコマンドはx:\path\to\folderなどのパスを許可しないため、現在のディレクトリまたはフォルダ名の取得に関する質問は役に立ちません。

1
Jorge

_%~dp0_は、あなたが求めているものを正確に提供します(つまり、_\\server\share\to\folder_)。しかし、あなたはできません _Net Use_コマンドに使用します。 _Net Use_コマンドは、ドライブ文字を作成するために_\\server\share_部分のみを受け入れます。

_\to\folder_-部分を取り除き、後でバッチファイルに追加する作業を行うことができますが、_pushd \\server\share\to\folder_コマンドを使用する方がよい場合があります。このコマンドを使用すると、一時的なドライバーレターが作成され、現在のディレクトリが自動的に正しいフォルダーに変更されます。 popd-コマンドを使用すると、開始した場所に戻り、一時ドライブが解放されます。

そう:

_C:\>

C:\>pushd \\wdmycloud\public\new folder

Z:\New folder>::do your thing
Z:\New folder>
Z:\New folder>popd

C:\>
_

B.T.W.作成された一時ドライブを確認する必要がある場合は、バッチファイルで_%~d0_を使用できます。そして、完全なパスの場合は_%~dp0_など(またはもちろん_%cd%_ :))。

1
Rik