About *.bat files :) Ena tutorial gia ta vasika

Λογισμικό, λειτουργικά συστήματα, προγραμματισμός, hardware, δίκτυα, Internet.

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Ασεβαστος και 10 επισκέπτες

 

About *.bat files :) Ena tutorial gia ta vasika

Δημοσίευσηαπό Oden » Ιούλιος 8th, 2006, 5:58 pm

Epsaxna ta mailbox mou meta apo polla xronia kai xethapsa auto edw to mikro tutorial.
Opoios endiaferete gia ligo dos kai batch files edw tha vrei mia voitheia.
To tutorial DEN einai diko mou :)


---------------------------

To Batch file programming (Όπως ονομάζεται..)δεν είναι τίποτα άλλο άλλα η έκδοση για Windows του Unix shell programming. Θα μπορούσαμε να πούμε οτι βασικά το Dos δούλεύει με ένa αρχείο που ονομάζεται Command.com.. Αυτό το άρχείο χερίζεται όλες τις εντολές του Dos που δίνουμε στο Dos Prompt (dir,del,copy etc..).Αυτές οι εντολές είναι ενσωματομένες στο Command.com και ονομάζονται internal commands. Επίσης υπάρχουν και οι external commands όπως Format,backup κτλ.
Έτσι όταν δίνουμε μια εντολή στο Dos τότε εκτελείτε το command.com (internal commands) ή γίνετε κλήση σε ένα ξεχωριστό πρόγραμμα (External Commands.)
Ο λόγος που κάποιος μπορεί να χρειαστεί τα batch file programs είναι για να κάνει κάποια πράγματα ρουτίνας όπως να κάνει backup κάποια αρχεία ή να σβήνει το περιεχόμενο του φακέλου /temp στο directory των Windows. Όπως καταλαβένεται είναι δύσκολο να τυπώνει κάποιος συνέχεια τις ίδιες εντολες για έκτελέσει κάποια εργασία. Με batch programming θα τα κάνει όλα γρηγορότερα.

Η δημιουργία ένος Batch file είναι σχετικά εύκολη υπόθεση.Τα batch files είναι βασικά αρχεία κειμένου που περιέχουν εντόλες Dos. Μπορείς να γράψεις τα άρχεία σου χρησιμοποιόντας το Notepad των Windows ή τον επεξεργαστή κειμένου του Dos (edit).

Άλλα τι συμβάινει μόλις τρέξουμε ένα batch file? Όταν το command.com πρέπει να ασχοληθεί με ένα batch file τότε "πηγένει" σε batch mode. Στο batch mode διαβάζει την πρώτη εντολη (πρώτη γραμμή) του batch file που έχουμε δημιουργήσει. Στην συνέχεια εκτελεί την εντολη και προχωραέι στην δέυτερη γραμμή του Batch file. Αυτή η διαδικασία κρατάει μέχρι το τέλος του αρχείου.

Ένα batch άρχειο είναι της μορφής: file.bat . Η προέκταση ΒΑΤ δηλώνει οτι το αρχείο μας είναι batch file. Επίσης θα πρέπει να γνωρίζετε οτι το όνομα ενός batch file θα πρεπει να είναι διαφορετικό απο τις εντολές του Dos. Δηλαδη είναι λάθος να ονομάσουμε ένα αρχείο : "dir.bat". Αν το κάνουμε δεν θα γίνει τίποτα.
*********************************************
Αρκετά όμως με την θεωρία! Ας περάσουμε στην δημιουργία ενός απλού batch file program.

C:
cd windows
telnet

H λειτουργία του παραπάνου προγράμματος έιναι πολύ απλη! Η πρώτη γραμμή στο Command.com να παέι στο σκληρό δίσκο C:. Η δεύτερη γραμμή λέει να παέι στον φάκελο των Windows και στην συνέχεια(τρίτη γραμμη) να εκτελέσει το πρόγραμμα telnet.

The REM command

H εντολή REM είναι η πιο απλή απο τις εντολές του Dos. Χρησιμοποιήται απο τους προγραμματιστές για να εισάγουν σχόλια στα προγραμματα τους με σκοπό να γίνουν πιο όμορφα και κατανοητά στον χρήστη. Η εντολή REM αγνοεί οτι υπάρχει μπροστά απο αυτην.
REM This batch file is my first batch program which launches the fav hacking tool; Telnet
telnet

ECHO: The Batch Printing Tool

Η εντολή Echo χρησιμοποιήται όταν θέλουμε να τυπώσουμε κάτι στην οθόνη. Μπορεί να χρησιμοποιήσουμε αυτή την εντολή για να πούμε στον χρήστη τι κάνει κάποιο πρόγραμμα ή για να περιγράψουμε τα βήματα του προγράμματος. Το επόμενο παράδειγμα θα σβήσει όλα τα αρχεία στον φάκελο c:\windows\temp

ECHO This Batch File deletes all unwanted Temporary files from your system
ECHO Now we go to the Windows\temp directory.
cd windows\temp
ECHO Deleting unwanted temporary files....
del *.tmp
ECHO Your System is Now Clean

Aς δούμε στην συνέχεια τι ακριβώς συμβάνει μόλις 'εκτελέσουμε' τον παραπάνω κώδικα:

C:\WINDOWS>batch_file_name
C:\WINDOWS>ECHO This Batch File deletes all unwanted Temporary files from your
system
C:\WINDOWS>ECHO Now we go to the Windows\temp directory.
Now we go to the Windows\temp directory.
C:\WINDOWS>cd windows\temp
Invalid directory
C:\WINDOWS>ECHO Deleting unwanted temporary files
Deleting unwanted temporary files...
C:\WINDOWS>del *.tmp
C:\WINDOWS>ECHO Your System is Now Clean
Your System is Now Clean

To πρόβλημα παραπάνω είναι ότι εμφανίζεται κάθε φορά η εντολή που εκτελείτε. Για να το αποφύγουμε αυτό πρέπει να γράψουμε στην αρχη:

ECHO OFF

Με την προσθήκη της εντολής echo off στην αρχή του προγράμματος η εκτέλεση του θα είναι:

C:\WINDOWS>ECHO OFF
This Batch File deletes all unwanted Temporary files from your system
Now we go to the Windows\temp directory.
Invalid directory
Deleting unwanted temporary files...
File not found
Your System is Now Clean

Έπίσης μπορούμε να βάλουμε το σύμβολο @ μπροστά απο κάθε εντολή αν δεν θέλουμε να εμφανίζεται στην οθόνη.Στο παράδειγμα μας μπορούμε να βάλουμε:

@echo off

Μερικοί απο εσάς θα σκεφτείτε οτι αν θέλουμε να αφήσουμε μια κενή γραμμή θα γράψουμε την εντολή ECHO μόνη της. Το μόνο που θα γίνει όμως έτσι είναι να μας εμφανίσει έαν το echo είναι on ή off.Αν θέλουμε να αφήσουμε μια κενή γραμμή θα πρέπει να γράψουμε echo. (με μια τελεία στο τέλος)

The PAUSE Command: Freezing Time

H εντολή pause χρησιμοποιήτε όταν για κάποιο λόγο θέλουμε να 'παγώσουμε' την εκτέλεση του προγράμματος.Για να συνεχιστεί η εκτέλεση θα πρέπει να πατήσουμε ένα πλήκτρο.Παράδειγμα:

REM This Batch program deletes *.doc files in the current folder.
REM But it gives the user to react and abort this process.
@ECHO OFF
ECHO WARNING: Going to delete all Microsoft Word Document
ECHO Press CTRL+C to abort or simply press a key to continue.
PAUSE
DEL *.doc

Όταν εκτελέσουμε το παραπάνω πρόγραμμα θα μας εμφανίσει:

C:\WINDOWS>a.bat
WARNING: Going to delete all Microsoft Word Document
Press CTRL+C to abort or simply press a key to continue.
Press any key to continue . . .

Πάντα όταν γράφουμε ένα πρόγραμμα το αποθηκέυουμε σε έναν φάκελο.Π.χ στον φάκελο c:\insane. Για να τρέξουμε το αρχείο θα πρέπει να μεταβούμε στον συγκεκριμένο φάκελο και να το 'τρέξουμε'.πχ C:\insane\t00r.bat. Για να μπορούμε να τρέξουμε το πρόγραμμα μας σε όποιο σημείο του σκληρού μας δίσκου και αν βρισκόμαστε θα πρέπει
να το δηλώσουμε στο αρχείο AUTOEXEC.BAT.

SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\name

To αρχείο autoexec.bat εκτελέιτε κάθε φορά που ξεκινάει ο υπολογιστής.

IF: CONDITIONAL BRANCHING

H εντολή IF έιναι πάρα πολή χρήσιμη γιατί μας δίνει τη δυνατότητα να επιλέξουμε ανάμεσα σε διαφοετικές καταστασεις.Έτσι τα προγράμματα μας γίνοται πιο έξυπνα και ευέλικτα. Μπορόυμε για παράδειγμα να ελέγξουμε ένα ένα αρχείο υπάρχει ή οχι:

IF [NOT] EXIST FILENAME Command
IF EXIST c:\autoexec.bat ECHO It exists

Η παραπάνω εντολή ελέγχει να δεί αν υπάρχει το αρχείο Autoexec.bat .Στην περίπτωση που βρεθεί το αρχείο θα εμφανίσει στην οθόνη "It exists" .Στην αντίθετη περίπτωσς δεν θα βγάλει τίποτα.Επίσης μπορούμε να χρησιμοποιήσουμε και την εντολή GOTO.

@echo off
IF EXIST C:\insane.doc GOTO insane
Goto end
:insane
ECHO to arxeio insane.doc yparxei
:end

Μπορύμε επίσης να ελέγξουμε για πολλά αρχεία ταυτόχρονα ως εξής:
IF EXIST c:\autoexec.bat IF EXIST c:\autoexec.bak ECHO Both Exist

Ακόμα μπορούμε να χρησιμοποιήσουμε και την αντίθετη συνθήκη:
IF NOT EXIST FILENAME Command
IF NOT EXIST c:\insane.doc ECHO It doesn't Exist

Ακόμα μπορόυμε να ελέγξουμε και για την ύπαρξη φακέλων. Αρκετοί θα σκεφτείτε να χρησιμοποιήσουμε την εντολή:
IF C:\windows EXISTS ECHO Yes it exists
Η παραπάνω εντολή δεν δουλέυει.θα αναγκαστούμε να χρησιμοποιήσουμε την εντολη στην εξής μορφή:
IF EXIST c:\windows\nul ECHO c:\Windows exists.


Comparing Strings to Validate Parameters

Μπορούμε ακόμα να συγκρίνουμε διάφορες τιμές μεταξύ τους. Η βασική σύνταξη είναι:

IF [NOT] string1==string2 Command

The CHOICE Command

H εντολή που θα περιγράψουμε τώρα είναι πάρα πολυ συμαντική και θα την έχετε συναντήσει σίγουρα σε αρκετά προγράμματα Dos. Αρχικά όμως θα πρέπει να εξηγήσουμε τι εννούμε όταν λέμε Error levels. Τα error levels παράγονται απο τα προγράμματα με σκοπό με σκοπό να μας ενημερώσουν για τον τρόπο που τέλειωσαν την εκτέλεση τους.Για παράδειγμα όταν πατάμε ctrl-c για να κλέισουμε ένα πρόγραμμα αυτο αντιστοιχεί σε error level 3. Αν το πρόγραμμα τερματίσει κανονικά τότε αυτό αντιστοιχεί σε error level 0. Η γενική σύνταξγ της εντολής Choise ειναι:

CHOICE[string][/C:keys][/S][/N][/T:key,secs]
Το πιο σημαντικό τμήμα της εντολής αυτής είναι τα τρία γράμματα που υπάρχουν μετά την λέξη keys. Για παράδειγμα:

CHOICE Choose Browser /C:12 /T:I.5
Στην παραπάνω εντολή θα καλέσει τον χρήση να επιλέξει ανάμεσα σε δυο επιλογές.Θα πρέπει να πατήσει 1 ή 2. Με το πάτημα διαφορετικού κουμπιού θα ξεκινήσει και μια διαφορετική διαδικασία.

IF ERROR LEVEL command
Η γενική μορφή της εντολής αυτής είναι:
IF [NOT] ERRORLEVEL number command.
IF ERRORLEVEL 3 ECHO Yes
Η παραπάνω εντολή θα τυπώσει στην οθόνη YES αν το errorlevel είναι 3.

Παρακάτω υπάρχει ένα παράδειγμα:
@ECHO OFF
ECHO.
ECHO.
ECHO Welcome to Browser Selection Program
ECHO.
ECHO 1. Internet Explorer 5.5
ECHO 2. Mozilla 5
ECHO x. Exit Browser Selection Program
ECHO.
CHOICE "Choose Browser" /C:12x /N
IF ERRORLEVEL 3 GOTO END
IF ERRORLEVEL 2 START C:\progra~1\Netscape
IF ERRORLEVEL 1 start c:\progra~1\intern~1\iexplore.exe
:END
Το παραπάνω παράδειγμα θα ξεκινήσει τον Internet explorer αν πατήσουμε 1 και τον Νetscape αν πατήσουμε 2.
Αν θέλουμε να σβήσουμε όλα τα αρχεία που υπάρχουν σε έναν φάκελο πρέπει να γράψουμε: del *.* Τότε όμως θα μας βγάλει μύνημα να επιλέξουμε y/n
Όλα τα αρχεία στον κατάλογο θα διαγραφούν!
Επιμένετε (y(ναι)/n(όχι));
Αν θέλουμε να σβήνονται όλα τα αρχεία ενός φακέλου χωρίς να χρειάζεται να επιλέξουμε εμέις ΝΑΙ/ΟΧΙ εκείνη την στιγμή υπάρχει η εντολη:
c:\windows> echo y | del *.*
Αυτα! Ελπίζω το Tutorial να φάνηκε αρκετά χρήσιμο σε όλους! Τα σχόλια σας στο Dr_insane@pathfinder.gr. Επίσης αν θέλετε ενα μικρό προγραμματάκι για να δείτε πώς δουλεύουν όλα τα παραπάνω ελάτε εδώ:
http://homepages.pathfinder.gr/sploit/members/dr_insane/checkin.txt

Ελπίζω με αυτό το tutorial να σας βοήθησα αρκετά! Φυσικά όσοι θέλουν να ασχολήθουν με batch programming σοβαρά πρέπει να το ψαξουν περισσότερο το θέμα και φυσίκα να γνωρίζουν πολύ καλα Dos. Για εντολές του Dos ελάτε εδώ:
http://www.it.uom.gr/project/dosman/default.html

Cya;p
[url]dr_insane@pathfinder.gr[/url]
http://members.lycos.co.uk/r34ct/
30-9-2002
• Εγώ είμαι δάκρυ μάτια μου, η αλμύρα της ζωής σου! Ο άγγελος κι ο δαίμονας στα βάθη της ψυχής σου •
Δεν είμαι εγώ σπορά της τύχης, ο πλαστουργός της νιας ζωής εγώ είμαι τέκνο της ανάγκης και ώριμο τέκνο της οργής.
Άβαταρ μέλους
Oden
F-Team
 
Δημοσ.: 2476
Εγγραφη: Φεβρουάριος 3rd, 2001, 2:00 am
Τοποθεσια: Somewhere in the Darkness
Το μέλος Oden, σύμφωνα με τους όρους χρήσης που αποδέχτηκε κατά την εγγραφή του, φέρει την αποκλειστική ευθύνη της παραπάνω δημοσίευσης, των απόψεων/θέσεων που εκφράζονται μέσω αυτής, καθώς και την επιλογή συνδέσμων που τυχόν συμπεριλαμβάνονται. Για άμεση επικοινωνία με τον διαχειριστή του phorum.gr στο email: admin(@)phorum.gr

Επιστροφή στην Πληροφορική

Μετάβαση στην αρχή της σελίδας

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Ασεβαστος και 10 επισκέπτες