バッチファイルからドライブリストを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/840677

質問

システムのアップグレードのためにマップされたすべてのドライブのリストを取得しようとしていますが、バッチファイルを介してこの情報を取得したいと思います。これどうやってするの?

ボーナスポイントの場合: 新しいサーバーでこれらのドライブのマッピングをスクリプト化するにはどうすればよいですか?

役に立ちましたか?

解決

現在のマッピングのリストが返されます

net use

転送は次のように動作します(その楽しい 1 の場合、VBScriptではなくバッチスクリプトで実行できます):

@echo off

setlocal EnableDelayedExpansion

set letter=.
set uncpath=.
set colon=.

for /f "delims=" %%l in ('net use') do @(
  for /f "tokens=2" %%t in ("%%l") do @set letter=%%t
  for /f "tokens=3" %%t in ("%%l") do @set uncpath=%%t

  set colon=!letter:~1,1!

  if "!colon!" EQU ":" (
    echo if exist !letter! net use !letter! /delete
    echo net use !letter! !uncpath! /persistent:yes
  )
)

endlocal

出力は次のようになります:

if exist M: net use M: /delete
net use M: \\someserver\someshare /persistent:yes
if exist N: net use N: /delete
net use N: \\otherserver\othershare /persistent:yes

これをバッチファイルに保存するだけで準備完了です。


1 実際、<!> quot; fun <!> quot;ここでは正しい言葉ではありません。 ;-)

他のヒント

マップされたドライブを一覧表示するには

Net Use

新しいドライブをマップするには

Net Use G: \\Server\Path

vbscriptを使用してこれを行うことができます

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive in colDrives
    Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next

そして、ネットワークドライブをマップできます

Set objNetwork = CreateObject("WScript.Network") 
objNetwork.MapNetworkDrive "G:", "\\Server\Path"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top