من اوامر الدوران للتعامل مع محتويات ملف

k:
كود:
[CENTER] FOR [B]/F[/B] "[I]options[/I]" %%[I]parameter[/I] IN ([I]filenameset[/I]) DO [I]command[/I]
[/CENTER]
الـ OPTION ممكن يتكون من التالي :
delims=
xxx
وهو عباره عن العلامه التي نفصل فيها محتويات الملف والافتراضي هو مسافه .
skip=
n
عدد الاسطر التي نريد تجاوزها في الملف . الافتراضي هو صفر
tokens=
n
عند تفصيل محتويات ملف فانه ينقسم الى عدة اجزاء وهنا نقوم باختيار اي جزء نريد :d: . والافتراضي هو واحد .
eol=x
السطر الذي اذا بدء بعلامة x يقوم الامر بتجاهله ويمكن تعيين اي رمز ولكن ; هو الرمز الافتراضي
usebackq
تستخدم اذا كان اسم الملف بين علامتي تنصيص
ادري السالفه ملخبطه شوي :cr: بس مع الامثله راح توضح شوي شوي :d:
مثال
(1)
لنفرض عندنا مستند نصي مكتوب بالسطر الاول فقط هذه العباره
والمستند يحمل اسم linezero.txt
ونريد استخراج كلمة zyzoom فقط من النص :bleh:
طيب الان نمشي حبه حبه
لو تلااحظون نستطيع تجزئة النص الى ثلاثة اقسام عن طريق الـ (.) والكلمة المراد استخراجها هي الجزء الثاني :y:
فلذلك الـ option يكون كالتالي
كود:
[CENTER] "delims=. tokens=2"
[/CENTER]
يكون الكود كذا
كود:
[CENTER] @echo off
FOR /F "delims=. tokens=2" %%G IN (linezero.txt) DO @echo %%G
pause
[/CENTER]
(2)
نحاول ناخذ مثال احترافي :y:
كل واحد لديه تقريباً ملف الـ host بجهازه ومساره كالتالي
كود:
[CENTER] X:\Windows\System32\drivers\etc
[/CENTER]
حيث x هو بارتشن الويندوز
ومعروف ان ملف الهوست هو المتحكم عن المواقع التي لايمكن فتحها عن طريق المتصفح IE بجميع اصداراته :bleh:
طيب في حال تكريك بعض البرامج فانه يتم اضافة بعض اسماء المواقع لمنعها من الاتصال بالجهاز
واكتشاف ان النسخه غير اصليه او تحديث البرنامج :hh:
المطلوب نبي نكتب كود لمعرفة هذه المواقع :d: وليس معرفه كل ماهو مكتوب بملف الهوست
- العلامه التي اذا بدء السطر فيها يتم تجاهله هي #
- سنستخدم هذا الاوبشن لاني ساضع اسم ملف الهوست بين علامتي تنصيص
كود:
[CENTER] usebackq
[/CENTER]
- سناخذ الجزء الثاني من ملف الهوست عند تقسيمه << سيتم تقسيمه الى جزئين فقط والفاصل بينهم مسافه :cr:
tokens=2
- لن نستخدم علامة التقسيم لان زي ماذكرنا الافتراضي انه يقسم السطر على حسب الفراغ او المسافه
يصبح الكود كالتالي :
كود:
[CENTER] @ECHO OFF
FOR /F "usebackq eol=# tokens=2" %%G IN ("%windir%\System32\drivers\etc\hosts") DO @echo %%G
PAUSE
[/CENTER]