LiKBeAsT Δημοσ. 10 Μαΐου 2007 Δημοσ. 10 Μαΐου 2007 Καλησπερα.. σε ενα Batch αρχειο με την εντολη IPconfig εμφανίζει την ΙΡ κτλ..Πως μπορω να θεσω αυτη την IP που εμφανιζεται ως μεταβλητη..? thx :-D
Bspus Δημοσ. 11 Μαΐου 2007 Δημοσ. 11 Μαΐου 2007 Δεν φανταζομαι να εννοεις οτι θελεις να δωσεις IP address σε μια καρτα δικτυου με το IP Config. Αυτο γινεται με το netsh Αν εννοεις να αποσπασεις την IP που εμφανιζεται και να την αποθηκευεσεις σε μια string, χρησιμοποιησε το παρακατω: (αγγλικα windows) > @echo off setlocal for /f "tokens=1,2,3,4* delims=:" %%a in ('ipconfig ^| findstr Address') do set ipaddress=%%b set ipaddress=%ipaddress:~1% echo %ipaddress% pause
LiKBeAsT Δημοσ. 11 Μαΐου 2007 Μέλος Δημοσ. 11 Μαΐου 2007 τι εννοεις σε μια string..?σαν variable..?ναι αυτο θελω..αλλα εχω ελληνικα windows... EDIT: Παραθετω μια εικονα για να δεις τις ονομασιες στα ελληνικα..αν χρειαζονται...
Bspus Δημοσ. 11 Μαΐου 2007 Δημοσ. 11 Μαΐου 2007 Εκει που λεω findstr Address καντο findstr IP. (με την τελεια στο τελος). Το findstr ειναι case sensitive οποτε και τη λεξη IP. με κεφαλαια γραφτην.
LiKBeAsT Δημοσ. 11 Μαΐου 2007 Μέλος Δημοσ. 11 Μαΐου 2007 Ευχαριστω πολυ!δουλευει μια χαρα!! μου εξηγεις λιγακι αν μπορεις και τις εντολες για να μαθαινουμε...
Bspus Δημοσ. 11 Μαΐου 2007 Δημοσ. 11 Μαΐου 2007 Καταρχην οποιαδηποτε εντολη δεν ξερεις, με ενα /? μαθαινεις τι κανει. Κανε και μια βολτα στο www.ss64.com να τις δεις μαζεμενες. ipconfig | findstr IP. Το παραπανω σου εμφανιζει στην οθονη ολες τις γραμμες που θα εβλεπες απο το ipconfig που περιεχουν την ακολουθια IP. και μονο αυτες. Μεσα στο batch, επειδη ειναι μεσα σε ' ', πρεπει να μπει και ενα ^ πριν το |. Το ^ ειναι escape character στα batch files, αν και δεν μπορω να καταλαβω γιατι μπερδευεται στη συγκεκριμενη περιπτωση, αν δεν το βαλεις δεν δουλευει. for /f "tokens=1,2,3,4* delims=:" %%a in ('ipconfig ^| findstr Address') do set ipaddress=%%b Τη γραμμη που πηρες απο την εντολη με το ipconfig, τη σπαει σε κομματια (Tokens) με κριτηριο το : (απο το delims=. Τα tokens (1,2,3,4 η οσα πουμε) μπορουμε να τα χρησιμοποιησουμε ως %%a, %%b, %%c κ.ο.κ. Το δευτερο Τoken εχει την IP. To πρωτο εχει το κομματι που λεει διευθυνση IP . . . . μεχρι (χωρις) το :. Οποτε κανουμε set ipaddress=%%b Επειδη ομως το δευτερο token εχει και space μπροστα, πρεπει να το ξεφορτωθουμε, οποτε: set ipaddress=%ipaddress:~1% To οποιο λεει, "παρε ολους τους χαρακτηρες της μεταβλητης ipaddress εκτος απο τον πρωτο και βαλτους στη μεταβλητη ipaddress
LiKBeAsT Δημοσ. 11 Μαΐου 2007 Μέλος Δημοσ. 11 Μαΐου 2007 Αρχικα..σε ευχαριστω θερμα... με ενα /? μαθαινειςναι..αλλα δν ειναι παντα οτι καλυτερο.. 1.to %a γιατι το βαζουμε...?Ειναι για να θεσουμε την αρχη του μετρηματος των tokens? 2. escape character τι είναι αυτο..?για να συνεχιζω σε αλλη σειρα την ιδια εντολη..? 3.Το | λειτουργει σαν συμβολο "συναληθευσης" κατα καποιο τροπο..? 4. εκτος απο τον πρωτοαυτο το κανει η εντολη :~1...? 5.το set εχει διαφορα απο το @Set...? και αλλο ενα γενικο.. 6.το /F τι ακριβως δηλωνει..?Ειναι και σε αλλες εντολες απο οσο ξερω... 7.Θα υπηρχε διαφορα αν βαλω "tokens=1* delims=:"..?τα 2,3,4 έχουν λόγο ή απλώς για να το καταλαβω...? thx again..και συγνωμη για τις αποριες αλλα...ανθρωποι είμαστε...θελουμε να ξερουμε... PS γινεται να αλλαξω το χρωμα σε μονο μια λεξη ή γραμμη..?
Bspus Δημοσ. 12 Μαΐου 2007 Δημοσ. 12 Μαΐου 2007 Αρχικα..σε ευχαριστω θερμα... ναι..αλλα δν ειναι παντα οτι καλυτερο.. 1.to %a γιατι το βαζουμε...?Ειναι για να θεσουμε την αρχη του μετρηματος των tokens? 2.τι είναι αυτο..?για να συνεχιζω σε αλλη σειρα την ιδια εντολη..? 3.Το | λειτουργει σαν συμβολο "συναληθευσης" κατα καποιο τροπο..? 4.αυτο το κανει η εντολη :~1...? 5.το set εχει διαφορα απο το @Set...? και αλλο ενα γενικο.. 6.το /F τι ακριβως δηλωνει..?Ειναι και σε αλλες εντολες απο οσο ξερω... 7.Θα υπηρχε διαφορα αν βαλω "tokens=1* delims=:"..?τα 2,3,4 έχουν λόγο ή απλώς για να το καταλαβω...? thx again..και συγνωμη για τις αποριες αλλα...ανθρωποι είμαστε...θελουμε να ξερουμε... PS γινεται να αλλαξω το χρωμα σε μονο μια λεξη ή γραμμη..? 1) Ναι. Ειναι λιγο αυθαιρετο. Μπορεις να αρχισεις με αλλο γραμμα και τα τοκενς θα παιρνουν αυτο και τα επομενα γραμματα καθε φορα 2) To wiki το εξηγει πολυ καλυτερα απο εμενα http://en.wikipedia.org/wiki/Escape_character 3) Ειναι το pipe. Το Output της μιας εντολης περνιεται σαν παραμετρος στην επομενη αντι να φανει στην οθονη. Οποτε το findstr τροφοδοτειται με τις 7-8 γραμμες text που βγαζει το ipconfig και αποφασιζει ποιες απο αυτες θα δειξει, δηλαδη αυτες που περιεχουν την ακολουθια IP. 4) θα σε παραπεμψω εδω http://www.ss64.com/ntsyntax/varsubstring.html 5) Δεν ξερω. Δεν εχω παρατηρησει διαφορα μεταξυ τους 6 + 7) Παλι θα σε παραπεμψω http://www.ss64.com/nt/for_cmd.html Δεν ειναι οτι βαριεμαι να τα γραφω, αλλα απο εκει τα εμαθα και εγω και δεν μπορω να τα πω καλυτερα. Στο τελος της σελιδας εχει και links για τους αλλους τυπους for. Πηγαινε και εκει να δεις τις διαφορες. Πχ το /F ειναι για for που χρησιμοποιει output απο αλλη εντολη. for /L ειναι το κλασικο for loop με αριθμους που χρησιμοποιειται στις γλωσσες προγραμματισμου Για το χρωμα σε μια γραμμη δεν ξερω αν και θα ειχε ενδιαφερον
alkisg Δημοσ. 12 Μαΐου 2007 Δημοσ. 12 Μαΐου 2007 > 5.το set εχει διαφορα απο το @Set...? Το @ χρησιμοποιείται σε batch files για να ΜΗΝ εμφανίσει την ΙΔΙΑ την εντολή (δεν μιλάμε για το output της). Δοκιμάστε με test1.bat set a=123 και test2.bat @set a=123 > Για το χρωμα σε μια γραμμη δεν ξερω αν και θα ειχε ενδιαφερον Γίνεται, αλλά χρειάζεται πρόγραμμα. Π.χ. να φορτωθεί το ενσωματωμένο ANSI.SYS, που εκτός από χρώματα υποστηρίζει και μετακίνηση του κέρσορα.
LiKBeAsT Δημοσ. 12 Μαΐου 2007 Μέλος Δημοσ. 12 Μαΐου 2007 2.Κατι μ λεει οτι απο εσενα θα το καταλαβω καλυτερα..γτ η wiki δν με βοηθησε.. Ευχαριστω πολυ και τους δυο.. Σχετικα με τη σελ..βοηθαει..αλλα οχι παντα.. πχ λέει FINDSTR Search for strings in files..απο αυτο δν καταλαβαινω αυτο π μ ειπες..αλλα οτι ψαχνει μεσα στα αρχεια.. Για αυτο και ρωταω!! EDIT : οκ με το escape character! Μια ακομη απορια..στο batch file π εκανα χρησημοποιουσα μεχρι τωρα ενα αρχειακι printip.exe π ειχα βρει και το αποιο εδινε σε μια γραμμη την ΙΡ σου.. οποτε εδινα την εντολη For /F %%i in ('printip') Do Set IP=%%iecho Current IP is %IP% Καλυτερα να χρησημοποιω αυτο ή να βαλω μεσα στο batch την εντολη να περνει την ΙΡ μ απο τo ipconfig..?Υπαρχει καποιο πλεονεκτημα σε καποια περιπτωση..(εκτος του οτι το exe μπορει να εχει τπτ "κακο"..θεωρουμε πως δν εχει..)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.