バッチファイルからドライブリストを取得するにはどうすればよいですか?
-
20-08-2019 - |
質問
システムのアップグレードのためにマップされたすべてのドライブのリストを取得しようとしていますが、バッチファイルを介してこの情報を取得したいと思います。これどうやってするの?
ボーナスポイントの場合: 新しいサーバーでこれらのドライブのマッピングをスクリプト化するにはどうすればよいですか?
解決
現在のマッピングのリストが返されます
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"
所属していません StackOverflow