2

ユーザーがマップしたドライブ文字をネットワーク ドライブから取得する方法を探しています。ここでいくつかの投稿を読みましたが、それらはすべてドライブのマッピング/マッピング解除に関するものであるように見えますが、ユーザーがそのネットワーク ドライブをどのドライブにマッピングしているかを知る必要があるだけです。

私が使用するコマンド プロンプトから: Net Use s: たとえば、ネットワーク ドライブの名前 (\servershare\file\sharename\shared) が表示されますが、

Net Use \\servershare\file\sharename\shared

「コマンドが正常に完了しました」と表示されるだけで、「S:」が返される必要があります。

特定のネットワーク ドライブのドライブ文字を取得するにはどうすればよいですか?

4

1 に答える 1

1

次のようなバッチ ファイルが機能します。

@FOR /F "tokens=2" %%D IN ('net use ^| find ":" ^| find /I "\\SERVER\SHARE"') DO @ECHO Drive letter is %%D

ノート:

  • ドライブ文字がわかっているので、必要なコードに置き換えます。おそらく、およびでECHO Drive letter is %%D囲まれた複数行のコードブロックです。探している共有に置き換えます。()\\SERVER\SHARE
  • 共有にマップされたドライブがない場合、後のステートメントDOは実行されません。共有に複数のドライブがマップされている場合は、ドライブごとに 1 回実行されます。
  • ^| find ":"ドライブ文字のない接続が存在しないことが確実な場合は、最初のパイプをスキップできます (たとえば、またはではnet use \\SERVER\SHAREなくで作成されます)。net use S: \\SERVER\SHAREnet use * \\SERVER\SHARE
  • /I別の大文字と小文字を使用する共有への接続がないことが確実な場合は、スイッチをスキップできます。
  • この 2@文字は、コマンドがコンソールにエコーされるのを防ぎます。別の方法として、バッチ ファイルを@ECHO OFF'.
  • これをバッチ ファイルからではなく、コマンド ラインで直接実行している場合は、2 つ%%D%D.
于 2016-02-17T19:36:41.837 に答える