كيف يمكنني الحصول على قائمة بالسيارة من ملف دفعة؟
-
20-08-2019 - |
سؤال
وأنا أحاول الحصول على قائمة من كل ما عندي من محركات الأقراص المعينة للحصول على ترقية نظام وترغب في الحصول على هذه المعلومات عن طريق ملف دفعة واحدة. كيف يمكنني أن أفعل هذا؟
لنقاط المكافأة: كيف يمكنني النصي تعيين من هذه الأقراص على الخادم الجديد؟
المحلول
وسوف يتم إرجاع قائمة تعيينات الحالية
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"
لا تنتمي إلى StackOverflow