A PHP Error was encountered

Severity: Warning

Message: fopen(/home/tahamipv/public_html/system/temp/ci_session55a0e061d5a7605d394780bf1573d8586c9c30de): failed to open stream: Disk quota exceeded

Filename: drivers/Session_files_driver.php

Line Number: 172

Backtrace:

File: /home/tahamipv/public_html/application/libraries/Tank_auth.php
Line: 28
Function: library

File: /home/tahamipv/public_html/application/libraries/Tank_auth_groups.php
Line: 16
Function: __construct

File: /home/tahamipv/public_html/application/controllers/Home.php
Line: 21
Function: library

File: /home/tahamipv/public_html/index.php
Line: 316
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Failed to read session data: user (path: /home/tahamipv/public_html/system/temp)

Filename: Session/Session.php

Line Number: 146

Backtrace:

File: /home/tahamipv/public_html/application/libraries/Tank_auth.php
Line: 28
Function: library

File: /home/tahamipv/public_html/application/libraries/Tank_auth_groups.php
Line: 16
Function: __construct

File: /home/tahamipv/public_html/application/controllers/Home.php
Line: 21
Function: library

File: /home/tahamipv/public_html/index.php
Line: 316
Function: require_once

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

55

8,376

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


الدرس الثالث : التعامل مع الملفات والمجلدات

الأوامر cd,pushd,copy,move,xcopy


ليكن لدينا مجداً على القرص c اسمه Syria و يحوي مجلدين آخرين داخله أحدهما اسمه Damascus و الآخر اسمه Aleppo


عندئذِ فإن مسار المجلد Damascus يكتب كالتالي :
C:\Syria\Damascus
وهذا المسار سنعتبره مثالاً لما سيذكر فاحفظه بعقلك


ملاحظة :

عند فتح موجه الأوامر dos فإن المسار الذي يكون فيه هو المكان الذي فتح منه
أي إذا أنشأنا ملفاً دفعياً و كان الملف على القرص c فإن المسار الافتراضي الذي
تعرف عليه dos هو القرص c

مثال :
لو أنشأنا ملفاً دفعياً على القرص c و كتبنا به التعليمة pause فقط و شغلنا الملف لكانت النتيجة كالتالي

وبماذا يعنينا هذا ؟؟
- لنفترض أن لديك على القرص E ملفاً باسم 1.MP3 و أنك تريد حذف هذا الملف فماذا تفعل
من المؤكد أنه عليك أولاً فتح القرص E ثم حذف هذا الملف
- لنفترض الآن أن لديك على القرص F مجلداً اسمه games و أردت أن تنشئ مجلداً فيه باسم GTA أليس عليك أولاً أن تفتح القرص f ثم المجلد games ثم تنشئ المجلد GTA
* هل وصلت الفكرة ؟!
الخلاصة : علينا أن ننتقل إلى مكان أي ملف أو مجلد في حال أردنا التعامل معه مثل الحذف و الإنشاء و إعادة التسمية و غيرها و هذا ما يجب أن نفعله في الملفات الدفعية أيضاً

فلحذف ملف يجب أن ننتقل إلى المسار الذي يحتويه و هكذا


- إن عملية التنقل ضمن windows هي بالضغط مرتين على المجلد الذي نريد فتحه
ويمكن الضغط على زر الخلف للرجوع مجلد إلى الوراء .....
أما في Dos أي في الملفات الدفيعة فإن هناك تعليمات خاصة لذلك سنناقشها بالتفصيل
أولاً : التنقل بين الأقراص
للانتقال من قرص إلى آخر نكتب اسم القرص متبوعاً بنقطتين
مثال إذا أنشأنا ملفاً دفعياً على القرص c و أردنا أن ننتقل إلى القرص d فإننا نكتب
d:
وهكذا فللانتقال للقرص f نكتب f:
قبل أن نبدأ بتعليمة cd و ملحقاتها انتبه إلى الشكل الموجود بعد التعليمات لتفهم ما يذكر
تعليمات النتقل بين المسارات :

تعليمة cd
للانتقال خطوة للأمام نكتب
cd xxxxxxxx
حيث xxxxxxxx يعني اسم المجلد أو المسار الذي نريد الانتقال له
فللانتقال من القرص c إلى المجلد Syria نكتب
cd Syria
وللانتقال من المجلد Syria إلى المجلد Damascus نكتب
cd Damascus
وهكذا ...
تعليمة cd..
تستخدم للانتقال خطوة إلى الخلف
فمثلاً للانتقال من المجلد Damascus إلى المجلد Syria نكتب
cd..
وللانتقال من المجلد Syria إلى القرص c نكتب
cd..
أي في كل مرة نرجع خطوة بدون أن نعرف ماذا في الوراء

-الآن ماذا لو أردنا الانتقال دفعة واحدة من مكان إلى مكان آخر بعيد عنه
هل علينا أن ننتقل خطوة خطوة
بالتأكيد لا فهناك طرق مختصرة

تعليمة cd\
للانتقال من المجلد Damascus إلى القرص c يمكن أن نكتب تعليمة cd.. مرتين متتاليتين
و هذا صحيح لكن هناك طريقة مختصرة بأن نكتب
cd\
فهي تقفز دفعة واحدة من المكان الذي نقف عليه إلى أول القرص
- ويمكننا أن ننتقل من أي مكان نقف فيه إلى أي مكان آخر بكتابة تعليمة cd وبعدها المسار الذي نريده
فمثلاً لو كنا على القرص c و أردنا الانتقال إلى المجلد Damascus يمكن بالطريقة السابقة أن نستخدم cd Syria ثم cd Damascus وراء بعضهم
أو يمكن استخدام الطريقة التالية
cd "Damascus\Syria"
حيث كتبنا التعليمة cd وبعدها بين قوسين كتبنا المسار المطلوب عندما كنا نقف على القرص c و يمكن كتابة المسار كاملاً للوصول المباشر من اي قرص
أي لو كنا على القرص e و أردنا الانتقال إلى المسار
C:\Syria\Damascus
عندئذٍ نكتب
cd " C:\Syria\Damascus"
لاحظ و جود علامتي اقتباس على طرف المسار و هي مهمة في حال وجود فراغات ولكي لاتقع في مشاكل حاول الاعتياد عليها دوماً بهذا الشكل
ولعل المخطط التالي يوضح كل ماذكر من تعليمات

أعتقد أن الأمور أصبحت واضحة الآن


تعليمة pushd
وهي من التعليمات التي تستخدم أيضاً للانتقال بشكل فوري إلى مسار طويل
فأينما كنا يمكننا الانتقال إلى المسار C:\Syria\Damascusبكتابة
pushd C:\Syria\Damascus
وهنا ليس من الضروري و جود علامتي اقتباس ""
حيث أنها تشبه تعليمة cd في النتيجة
تذكرة :
أصبح لدينا لآن الصيغ التالية لتعليمات التنقل
cd xxx للانتقال خطوة للأمام
cd.. للانتقال خطوة للخلف
cd\ للانتقال إلى بداية قرص
cd " xxxxxxxxxxxxx" للانتقال مسار طويل دفعة واحدة
pushd xxxxxللانتقال مسار طويل دفعة واحدة


ملاحظة : يمكن كتابة chdir بدلاً من cd أي نفس النتيجة
لأنه صيغة cd جاءت اختصاراً لـ chdir في الإصدارات القديمة

ملاحظة : لا فرق بين كتابة الأحرف كبيرة أو صغيرة في المسارات مثل Syria , Syria


تعليمات النسخ و النقل والحذف
النسخ :


تعليمة copy
شكل التعليمة :
copy xxx yyy
حيث xxx المصدر و yyy هو الهدف
أي نكتب التعليمة copy ثم نكتب مكان الملف الذي نريد نسخه و نترك فراغاً ثم نكتب المسار الذي نريد النسخ إليه


مثال :
أنشئ ملفاً دفعياً ينسخ الصورة image.jpg الموجودة على القرص f في مجلد اسمه wallpaper إلى القرص d
الحل
copy "f:\wallpaper\image.jpg" "d:"
حيث أن علامات الاقتباس غير ضرورية في المثال السابق و هي بشكل عام ضرورية فقط في حال وجود فراغات في أسماء المسار مثل program files

مثال :
اكتب ملفاً دفعياً يقوم بنسخ كافة الصور الموجودة في المسار d:\images إلى المسار f:\wallpaper
الحل :

Copy d:\images\*.jpg f:\wallpaper
هام من الآن لآخر الدورة
النجمة * تعني أي سلسلة حروف مثلاً *.jpg تعني كافة الملفات
ذات الامتداد jpg أي كافة الصور
و علامة الاستفهام ؟ تعني محرف و احد فمثلاً
???.txt
تعني الملفات النصية التي يكون اسم الملف مكوناً فيها من ثلاثة محارف
المحرف = أي حرف أو رقم و بعض الإشارات مثل - + …
أرجوا أن تكون هذه النقطة واضحة لأنها مهمة

مثال:
أنشئ ملف دفعي يقوم بنسخ مجموعة ملفات باسم
image (1)
image (2)
image (3)
….. الخ
وبفرض أن هذه الملفات موجودة على المسار التالي
E:\wallpapers
ونريد أن يقوم الملف الدفعي بنسخها إلى المسار
C:\WINDOWS\Web\Wallpaper
الحل
سنحل هذا المثال بعدة طرق لتوضيح ما مر من نقط
- طريقة 1:

pushd e:\wallpapers
copy *.jpg c:\windows\web\wallpaper

- طريقة 2:

e:


Cd wallpapers
Copy *.jpg C:\WINDOWS\Web\Wallpaper


- طريقة 3:

Copy E:\wallpapers\*.jpg C:\WINDOWS\Web\Wallpaper

الشرح

في الطريقة الأولى أعطينا المسار للملف الدفعي ليكون هو الافتراضي
ثم كتبنا أمر copy لكي ينسخ كافة الملفات التي لها الامتداد jpg
وفي الطريقة الثانية انتقلنا إلى القرص e ثم انتقلنا إلى المجلد wallpapers
ثم قمنا بكتابة أمر نسخ كافة ملفات الصور من نوع jpg إلى

وفي الطريقة الثالثة كتبنا مسار الملفات و مسار الوجهة التي نريد نسخ الملفات إليه
النسخ في حال تواجد مسبق للملفات
في حال نسخ ملفات وكانت هذه الملفات موجودة فيظهر لنا رسالة تخيرنا بين عدم النسخ أو الكتابة فوق الملف أو الكتابة فوق جميع الملفات
و الرسالة تكون على الشكل التالي
(yes/no/all)
حيث نضغط على الحرف الأول من كل كلمة بينهم
y=yes للموافقة على استبدال الملف
n=no رفض استبدال الملف و المحافظة على الملف القديم
a=all الموافقة على استبدال كافة الملفات
ويمكن أن نكتب التعليمة بحيث أنه تلقائياً يتم الموافقة على استبدال الملفات المكتوبة
كما يلي copy/y

تعليمة النقل move
و هي تشبه عملية القص و اللصق ضمن ويندوز
شكل التعليمة:

move [/y] [Source] [target]

تتألف التعليمة من ثلاثة أقسام رئيسة
move اسم التعليمة وهي للنقل هنا
Source المصدر
target الهدف\الوجهة
معلمة أو سويتش هذه التعليمة /y و هي اختيارية لإلغاء عملية تأكيد النقل
وهذه الطريقة في عرض شكل التعليمة يفضل أن نعتاد عليها من الآن فلاحقاً
والآن سيتضح الأمر مع الأمثلة
مثال:
ليكن لدينا المجلد tahasoft على القرص f ويحتوي مجموعة ملفات بامتداد bat
ونريد نقل هذه الملفات جميعها إلى القرص c
الحل

move f:\tahasoft\*.bat c:\





ملاحظة هامة على المثال السابق : في المسار الوجهة كتبنا c:\
ولو أننا كتبنا c:
لتم نسخ الملفات إلى آخر مسار كنا نقف عليه في القرص c
و هذه النقطة مهمة حيث أننا يجب أن نكون حذرين في التعامل مع المسارات فكل محرف له دلالته و يغير الطريق

ملاحظة :
في حال أن كانت الملفات التي نريد نقلها موجودة مسبقاً فإنه يظهر لنا نفس ما يظهر مع تعليمة النسخ و لكي لا تظهر رسالة تأكيد النقل يمكن كتابة التعلية على الشكل

move/y f:\tahasoft\*.bat c:\

تعليمة النسخ xcopy
لنسخ مجموعة ملفات أو لنسخ مجلد بما يحتويه من ملفات أو مجلدات
شكل التعليمة:

xcopy [/y/s/e] [Source] [target]

يتم النسخ من المصدر source إلى الوجهة target
ولهذه التعليمة عدة معلمات ( أو تسمى متغيرات أو مفاتيح التعليمة أو (Parameter اخترت منها ما هو اكثر استخداماً
طبعاً كالعادة المعلمات اختيارية و ليست إجبارية و أنوه إلى أنه يمكن كتابة أكثر من معلمة معاً
/y لإلغاء رسالة التأكيد في حال وجود نفس الملفات والمجلدات
/s لنسخ كافة محتويات المجلد بما يحتويه من مجلدات فرعية مالم تكن فارغة
/e لنسخ كافة محتويات المجلد بما يحتويه من مجلدات فرعية مع الفارغة

مثال
اكتب برنامجاً لنسخ محتويات المجلد Program Files الموجود على القرص C
إلى ذاكرة فلاش ميموري حيث اسم القرص H
بحيث لا يتم نسخ المجلدات الفارغة و لا تظهر رسائل تأكد إن كانت المجلدات موجودة
الحل

xcopy/y/e "c:\program files" h:\

ملاحظة :
لا يوجد تعليمة مختصة بنسخ المجلدات و لكن نستخدم xcopy في لنسخ مجلد و نستخدم معها تعليمة md التي سنراها لاحقاً لإنشاء مجلد في الوجهة قبل بدء النسخ

نتابع في الدرس التالي التعليمات الخاصة بالتعامل مع المسارات
ونكتفي بهذا القدر لهذا الدرس حتى ما نتقل عليكم أكثر من هيك
و أذكر بأن التعامل مع الملفات والمسارات من الدروس ذات الأهمية الكبيرة و التي يجب فهمها بشكل صحيح
في الدرس القادم : تعليمة إنشاء مجلد
md و تعليمات الحذف del,rd و إعادة التسمية ren
بإذن الله


الوظيفة:
أكتب برنامجاً

1-يقوم بنسخ محتويات المجلد
C:\Documents and Settings\All Users\Favorites
إلى المسار
c:\windows\temp


-ثم ينسخ كافة الملفات ذات الامتددا jpg الموجودة في المسار

C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures


إلى المسار
C:\WINDOWS\Web\Wallpaper


أذكر بأنه في نهاية الدورة سيتم إنشاء كتاب فيه كامل الدروس بشكل منقح و مريح

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

Botta     

جزاك الله خيرا على الشرح الرائع وجعله الله فى ميزان حسناتك
تطبيقى


copy "C:\Documents and Settings\All Users\Favorites\" "c:\windows\temp"
move "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\*.jpg" "C:\WINDOWS\Web\Wallpaper"

تطبيق اخر



xcopy/y/e "C:\Documents and Settings\All Users\Favorites" "c:\windows\temp"
move/y "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\*.jpg" "C:\WINDOWS\Web\Wallpaper"
bawar     
جزاك الله خيرا
lashr     

 
@echo off
copy "C:\Documents and Settings\All Users\Favorites" "c:\windows\temp2"
xcopy "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\*.jpg" "C:\WINDOWS\Web\Wallpaper"
pause







زهير طه     
أهلاً بك أخي مشاريit و نحن متابعين الدروس معكم ان شاء الله
و اللي بيحب يرفق ملفات الواجبات او كود الحل نحن بانتظاره
مشاريIT     
مشكورعلى الموضوع الجميل
وانا متابع الدروس اول بأول
مجنن الجن     
مشكور بارك الله بك