سؤال

وأنا أحاول الحصول على قائمة من كل ما عندي من محركات الأقراص المعينة للحصول على ترقية نظام وترغب في الحصول على هذه المعلومات عن طريق ملف دفعة واحدة. كيف يمكنني أن أفعل هذا؟

لنقاط المكافأة: كيف يمكنني النصي تعيين من هذه الأقراص على الخادم الجديد؟

هل كانت مفيدة؟

المحلول

وسوف يتم إرجاع قائمة تعيينات الحالية

net use

وقال إن نقل مثل هذا العمل (للمتعة <سوب> 1 من ذلك، يتيح القيام بذلك في دفعة السيناريو بدلا من فبسكريبت):

@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 في الواقع، "متعة" ليست كلمة حق هنا. ؛ -)

نصائح أخرى

لقائمة محركات الأقراص المعينة

Net Use

لتعيين محرك أقراص جديد

Net Use G: \\Server\Path

ويمكنك القيام بذلك باستخدام فبسكريبت

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