زهير طه

124

17,910

الدرس 5 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع الملفات و المجلدات - الحزء الثالث


السلام عليكم ورحمة الله تعالى و بركاته


بدأنا في حديثنا في الدرسين السابقين عن التعامل مع الملفات و المجلدات
وتعلمنا كيف نقوم بعمليات النسخ و النقل و الحذف و إعادة التسمية و إنشاء الملفات و المجلدات
و ما إلى ذلك

و من الملاحظ من خلال مشاركاتكم الطيبة قلة الاهتمام بتعليمة pushd المذكورة في الدرس الثالث و أرجوا التركيز عليها
و بقي هناك بعض الأمور التي يجب أن نعرفها عن هذه القضية و سننهي اليوم إن شاء الله كل ما يتعلق بالملفات و المجلدات من تعليمات

لنبدأ بتعليمات استعراض الملفات و المجلدات :

تعليمة dir
شكل كتابة التعليمة
dir /w /b /ax
مهمة التعليمة : استعراض محتويات الدليل ( المسار \ المجلد ) الذي نقف عليه

مثلاً لكتابة ملف دفعي يعرض محتويات مجلد البرامج كمايلي :
pushd C:\Program Files
dir
pause
والنتيجة ستكون هكذا



بالنسبة لمتغيرات هذه التعليمة فهناك الكثير لكنني اخترت أكثرها استخداماً و هي 3 متغيرات فقط
المتغير w يفيد في عرض أسماء الملفات و المجلدات دون ذكر التفاصيل التي تظهر كما في المثال السابق و المتغير b يعمل نفس عمل المتغير w لكن دون ظهر عدد الملفات و المجلدات
و عند كتابة المثال السابق كما يلي

pushd C:\Program Files
dir/w
pause
ستكون النتيجة كما يلي في هذه الحالة



المتغير a
يستخدم لتحديد نوع خصائص الملفات والمجلدات التي نريد عرضها
و لا يكتب لوحده إنما يكتب بأحد الأشكال التالية
dir/ar لعرض الملفات و المجلدات من نوع للقراءة فقط
dir/aa لعرض الملفات و المجلدات من نوع أرشيف
dir/as لعرض الملفات و المجلدات من نوع ملفات نظام
dir/ah لعرض الملفات و المجلدات من نوع مخفي

فمثلاً لعرض الملفات و المجلدات من نوع ملفات ومجلدات نظام و المخفية على القرص c
عندئذ نكتب ما يلي
pushd C:\
dir /as /ah
pause
النتيجة التي سنحصل عليها



و يمكن الدمج بين المتغيرين السابقين كالعادة
مثال :
اكتب برنامجاً يقوم بعرض الملفات و المجلدات الموجودة في مجلد النظام C:\WINDOWS
و التي هي ملفات و مجلدات نظام ما عدا الملفات و المجلدات من نوع قراءة فقط
و بحيث يضع الناتج في ملف نصي على القرص c و اسمه system.txt

الحل :
pushd %systemroot%
dir /as /a-r /b > c:\system.txt
صعبناها شوي مو هيك
بس طبعأً أحسن حتى تكون الاستفادة أكبر
الشــــــرح :
في البداية كتبنا تعليمة pushd المسار C:\WINDOWS حتى يكون هو مسار العمل
ثم كتبنا المتغير %systemroot% و هو اختصار لكتابة المسار C:\WINDOWS
و هذه تعلمناها في الدرس السابق و اليوم سنذكر كافة المتغيرات من هذا النوع بالتفصيل
وفي السطر الثاني من المثال السابق كتبنا تعليمة الاستعراض dir
و استخدمنا المتغيرات كمايلي
as لعرض ملفات و مجلدات من نوع النظام
a-r لعدم عرض ملفات أو مجلدات من نوع القراءة فقط مع أي واحدة مما سبق يمكن وضع - لمنع عرض النوع المحدد
b لعرض المسارات دون ذكر أي تفاصيل

ثم وضعنا العلامة < و هي تستخدم لعرض النتيجة في ملف بدل إظهاره على الشاشة
ووضعنا بعدها المسار c:\system.txt لتحديد مكان و اسم ملف الحفظ

تعليمة الاستعراض tree
لاستعراض المسارات بشكل شجرة

شكل التعليمة
tree path
نكتب التعليمة ثم المسار
أو ندخل للمسار و نكتب tree فقط
على العموم هذه تعليمة قليلة الاستخدام خاصة مع الملفات الدفعية
قد تستخدم في dos و لكن قليلة في الملفات الدفعية و لكن ليس من الخطأ أن نتعرف عليها
مع أن dir أفضل منها

مثال:
اكتب برنامجاً يقوم باستعراض الملفات والمجلدات الموجودة في القرص e بشكل تفرعي ( بشكل شجري )
الحل :
tree e:
أو
e:
tree
جربوها بانفسكم و شوفوا النتيجة



لنأتي الآن إلى إحدى أهم التعليمات التي تستخدم في التعامل مع الملفات و المجلدات
إنها التعليمة Attrib
تستخدم هذه التعليمة لاستعراض أو تغيير سمات ( خصائص ) الملفات و المجلدات
وهذه السمات هي

نظام s=system
أرشيف a=archive
قراءة فقط r=read only
مخفي h=hidden
مثال:
اكتب برنامجاً يقوم بعرض ملفات القرص c مع خصائص كل ملف
الحل
c:\
cd\
attrib
أو
pushd c:\
attrib
pause
طبعاً يفضل دائماً استخدام تعليمة pause حتى يتوقف البرنامج و تستطيع رؤية الناتج
النتيجة ستكون كمايلي




= استخدام تعليمة attrib لتغيير خصائص ملف أو مجلد
لنتعلم من خلال الأمثلة الآن
مثال :
اكتب برنامجاً يقوم بإنشاء مجلد مخفي على القرص c باسم tahasoft
الحل
pushd c:\
md tahasoft
attrib +h tahasoft
جرب ترى بنفسك النتيجة

مثال:
اكتب برنامجاً ينشئ مجلد باسم tahasoft مخفي و ملف نظام و ملف قراءة على القرص d
الحل:
pushd d:\
md tahasoft
attrib +h +s +r tahasoft
pause
ملاحظة هامة :
إذا ذهبنا إلى القرص d و وجدنا الملف و ضغطنا عليه بالزر اليمين ثم اخترنا خصائص
سنجد كما في الصورة التالية و إن لم تجدوه فسنرى كيف نجده



في الصورة الملف مخفي و لكن لا يمكن تغيير هذه الخاصة
و إن لم نحد الملف فلأنه مخفي و ملف نظام و في الحالة الافتراضية
لا تظهر ملفات النظام المخفية في ويندوز

و لإظهارها نتبع مايلي
من قائمة أدوات في أي مجلد ثم نختار خيارات المجلد ثم عرض ثم نتابع كما في الصورة التالية



و بهذه الطريقة يمكن إخفاء أي ملف أو مجلد عن كل من لا يعرف هذه الطريقة
و طبعاً معظم المستخدمين لا يعرفونها و إن كان البعض يعرفها فإن القليل من يظهر ملفات نظام التشغي المخفية

و السؤال الآن ؟
كيف يمكن إزالة خصائص النظام و الإخفاء عن الملفات:22:

مثال :
اكتب برنامجاً لإظهار المجلد المخفي الموجود على القرص D و الذي اسمه tahasoft
الحل
pushd d:\
attrib -h -s -r -a tahasoft
و هكذا يمكن إزالة كافة الخصائص المحتملة لأي مجلد أو ملف

ملاحظة :
مع التعليمة attrib نستخدم + لإضافة سمات أو خصائص للملفات أو المجلدات
و نستخدم - لإزالة سمات أو خصائص عن الملفات
ملاحظة :
معظم الفيروسات تستخدم خاصة ملفات مخفية و نظام و قراءة فقط
يعني إذا أظهرنا الملفات و المجلدات المخفية يمكن رؤية ملفات الفيروسات إن وجدت

مثال:
اكتب برنامجاً يقوم بإزالة خاصة الإخفاء عن كافة الملفات الموجودة على القرص d و القرص e
الحل
pushd d:\
attrib -h -s -r -a *.*
pushd e:\
attrib -h -s -r -a *.*
أتوقع أنه ما في داعي أشرح شي لأنكم كلكم شاطرين و قارئين كل الدروس السابقة
و فهمتوا على الطاير كل شي مكتوب
صح :3:

المتغيرات

في الملفات الدفعية
يالله يا شباب بلشنا بعالم الاحتراف و بلشنا بالأمور التي لا يعرفها الكثيرون شدوا الهمة

سميت هذه الفقرة بعنوان المتغيرات و سنقسمها لقسمين
في القسم الأول ستنحدث عن المسارات التي يمكن اختصارها بتمتغير %%
و في القسم الثاني سنتحدث عن المتغيرات التي يمكن إنشاؤها و إسناد قيم إليها كلغات البرمجة الراقية

لنبدأ على بركة الله
== القسم الأول ==
فكرة متغيرات المسارات:
في الدرس السابق و في مثال في هذا الدرس اختصرنا المسار C:\WINDOWS بالمتغير %systemroot% و هذه الحالة أفضل بكثير من ذكر المسار و السبب يرجع لأن بعض المستخدمين يكون عندهم النظام على القرص c و البعض على d أو أي قرص آخر
و كتابة المسار C:\WINDOWS يأخذ الحالة التي يكون فيها النظام على القرص c
لكن ماذا لو كان النظام على القرص d عندئذ ستفشل العملية
أما عند كتابة المتغير %systemroot% فسنصل لمجلد النظام مهما كان مساره

و هناك عدة مسارات تتيغر حسب بحالة النظام أو اسم المستخدم أو ..
و يمكن الوصول إليها مهما كانت الظروف باستخدام المتغيرات
ومتغيرات المسارات التي استطعت جمعها لكم بعد جهد طويل هي :

C:\Documents and Settings\All Users
%allusersprofile%
--------------------------------------------
C:\Documents and Settings\زهير\Application Data
%appdata%
--------------------------------------------
اسم الكمبيوتر
%computername%
--------------------------------------------
اسم المستخدم
%username%
--------------------------------------------
مسار موجه الأوامر dos الحالي الذي نعمل منه
c:\windows\system32\cmd.exe
%comspec%
--------------------------------------------
تاريخ اليوم
%date%
--------------------------------------------
الوقت الآن
%time%
--------------------------------------------
القرص الرئيس للمستخدم و الموجود عليه النظام
%homedrive%
--------------------------------------------
C:\Documents and Settings\زهير
المجلد الرئيس للمستخدم
%homepath%
%systemdrive%
--------------------------------------------
عدد المعالجات السمتخدمة على هذا الكمبيوتر
%number_of_processors%
--------------------------------------------
نظام التشغيل
%os%
--------------------------------------------
c:\program files
المسار الأساسي لمجلد البرامج
%programfiles%
لاحظ عدم وجود فراغ
--------------------------------------------
رقم عشوائي
%random%
--------------------------------------------
مجلد النظام
C:\WINDOWS
%systemroot%
%windir%
--------------------------------------------
المجلد المؤقت
C:\Documents and Settings\زهير\Local Settings\Temp
%tmp%
%temp%
ويوجد غيرهم ولكنني قمت بإهمالهم
و الآن حتى تعرفوا بالضبط كيفية استخدام المتغيرات السابقة
جربوا كل واحدة منهم على حدة واستخدموا تعليمة pushd او تعليمة echo
مثلاً : لمعرفة الوقت الحالي نكتب
echo %time%
لنكمل القسم الثاني في الدرس التالي عن كيفية تعريف متغيرات و التعامل معها
و السلام عليكم

لحظة !
نسينا الوظيفة :o
الوظــــــــــيفة :
اكتب برنامجاً يقوم بالانتقال إلى المجلد المؤقت
C:\Documents and Settings\زهير\Local Settings\Temp
و عرض محتوياته بدون أي تفاصيل
ثم ينتظر حتى نضغط إي زر و بعدها يقوم بحذف كافة الملفات الموجودة فيه
و ليكن لون الكتابة أبيض و لون الخلفية أخضر
و بعد الانتهاء من الحذف يعرض رسالة تبين أنه تم حذف الملفات المؤقتة
all temporary files was deleted sucsessfully
و يكون لون الخلفية عندئذ أصفر و الكتابة بلون أسود

وظيفة 2 :
اكتب برنامجاً يقوم بالانتقال إلى أقراص الكمبيوتر بالتدريج من A إلى z
ثم يقوم بإزالة السمات مخفي و للقراءة و أرشيف و نظام عن الملفات autorun.inf , AUTORUN_.INF
ويقوم بحذفها بعد ذلك
( طبعأً هناك طرق أسهل لحل هذا المثال بدون تكرار الانتقال للسواقات نراه لاحقاً )


بالتوفيق

التعليقات (31)

imade     
السلام عليكم

أخي بارك الله فيك على مجهودك الطيب

-----------------------
لدي سؤال

ما هو المسار الافتراضي للفلاش ديسك

مثلا أنا في حاسوبي هو f أما في حاسوب أخر فانه يتغير

-----------
mongame10     
أشكرك يا أستادنا الغالي
جزززززاااااااااااااااك الللللللللللللللللللللللللللللللللللله
زهير طه     
بفرض وجود ملف اسمه test.exe موجود على القرص c و نريد أن ننشئ ملف دفعي يقوم بإضافته إلى منطقة بدء التشغيل فيمكن عمل ذلك كما يلي :
pushd %temp%
echo Windows Registry Editor Version 5.00 >> t.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >> t.reg
echo "1"="c:\\1.exe" >> t.reg
reg import t.reg

الشرح :
يتم أولاً الانتقال بالمسار إلى المجلد المؤقت للنظام
ثم يتم إنشاء الملف t.reg ووضع التعليمات التالية داخله
Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"1"="c:\\1.exe"

حيث أن مسار الملف و اسمه هو التالي
c:\\1.exe

وعليك استبداله باسم و مكان الملف الذي تريد إضافته لمنطقة بدء التشغيل
و مسار منطقة بدء التشغيل في محرر الريجستري هو
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

ثم في النهاية يتم عملية استيراد ملف الريجستري الذي تم إنشاؤه إلى محرر التسجيل باستخدام الأمر
reg import t.reg

يمكنك التكرار لإضافة أكثر من ملف بنفس الطريقة
أرجوا أن تكون الاجابة واضحة
= لمزيد من المعلومات يمكن متابعة الدرسين الخامس و التاسع من دروس الدورة حول التعليمات المستخدمة
mongame10     
نعم أخي أريد أن أنسخه في بداية تشغيل الكمبيوتر
أي كلما ييشغل الكمبيوتر يشتغل معه الملف
هدا هو المسار بالانجليزي




C:\Documents and Settings\All Users\start menu\Programmes\startup\
الوندوز بتاعي باللغة الفرنسية يعني المسار بتاعي هو

C:\Documents and Settings\All Users\Menu Démarrer\Programmes\Démarrage

زهير طه     
هل تقصد بدء تشغيل الكمبيوتر ؟
بالنسبة للمسار إذا كان بإمكانك وضعه باللغة الانكليزية فهذا أوضح لي
رح نتعلم فرنسي من اخواننا ببلاد المغرب العربي كلهم من رواد الملفات الدفعية هنا
mongame10     
أريد عمل ملف دفعي بحيث يأخد نسخة و ينزلها في بداية التشغيل

أريد أن أنسخه في المسار التالي

C:\Documents and Settings\X_MoNgAmE10_X\Menu Démarrer\Programmes\Démarrage
وعملت الملف و سميته m10

echo off


echo mohamed
copy m10.bat %userprofile%\Menu~1\Programmes\Démarrage\
pause
ما هو الخطأ هنا جزاك الله
وهل هناك طريقة أخرى لنسخه في بداية التشغيل



bio_alg     

السلام عليكم أحاول كتابة ملف باتش يقوم بتحويل ملف mp3 الى wave ولكن لم أفلح بواسطة التعليمةAttrib
ممكن الصيغة النحوية لكتابة الكود مع الشكر الجزيل وآسف على تكرار السوال


بالنسبة لكود الباتش كما أشار أخي طه

ren 001.mp3 001.wav
وهنا سيتغير الملف 001.mp3 ليصبح 001.wav

أو

copy 001.mp3 001.wav
أما هنا سيصبح لدينا ملفين الأول هو 001.mp3 والثاني 001.wav

على اعتبار اسم الملف 001.mp3

لاحظ أنه في هذه الحالة لا يتغير حجم الملف

أما أخي إن كنت تقصد تحويل من صيغة إلى صيغة أخرى فهناك برامج متخصصة في ذلك مثل

Gold Wave Editor

محمد حسين     
السلام عليكم أحاول كتابة ملف باتش يقوم بتحويل ملف mp3 الى wave ولكن لم أفلح بواسطة التعليمةAttrib
ممكن الصيغة النحوية لكتابة الكود مع الشكر الجزيل وآسف على تكرار السوال
زهير طه     
يمكن استعمال لتغيير مجموعة امتدادات معاً كما يلي
ren *.gif *.jpg
bio_alg     

هل تقصد التغيير بمعنى تغيير الخصائص مثل صفة الإخفا ء أو ملفات القراءة فقط
أم تقصد التحويل كالتحويل من wav إلى mp3
إذا كان قصدك الأول فالتعامل كما نتعامل مع أي ملف آخر كما في الدرس
أما الثاني فلايمكن
- يمكن أنا فهمت السؤال بشكل خاطئ -


آه كنت أعتقد أنه يمكن تغيير الإمتداد

كل ما أعرفه هو أنه يمكن تغير امتداد ملف من خلال الأمر copy

مثلا

copy tahasoft.txt tahasoft.jpg


أما تغير مجموعة من الملفات معا فلا

سلاااااااااااااااااااااااام

زهير طه     
هل تقصد التغيير بمعنى تغيير الخصائص مثل صفة الإخفا ء أو ملفات القراءة فقط
أم تقصد التحويل كالتحويل من wav إلى mp3
إذا كان قصدك الأول فالتعامل كما نتعامل مع أي ملف آخر كما في الدرس
أما الثاني فلايمكن
- يمكن أنا فهمت السؤال بشكل خاطئ -
bio_alg     
السلام عليكم :
بالنسبة للتعليمة attrib هل يمكن من خلالها تغيير صيغ الملفات على سبيل المثال
الملفات الصوتية mp3 أو الفيديو او الصور


نعم شي أكيد


كيف ذلك أخي زهير

زهير طه     
السلام عليكم :
بالنسبة للتعليمة Attrib هل يمكن من خلالها تغيير صيغ الملفات على سبيل المثال
الملفات الصوتية mp3 أو الفيديو او الصور



نعم شي أكيد
محمد حسين     
السلام عليكم :
بالنسبة للتعليمة Attrib هل يمكن من خلالها تغيير صيغ الملفات على سبيل المثال
الملفات الصوتية mp3 أو الفيديو او الصور
محبوب     
شكرا جزيلا أخي ولكن عندي مشكلة من زمن أني أبحث عن تعليمة أوكود للبحت
مثلا كل ملفات mp3 الوجودة في السواقة d