Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Τρέχοντας σε DOS την εντολή "netsh interface show interface" βλέπω κανονικά τα δεδομένα (στα ελληνικά) που επιστρέφει η εντολή στο παράθυρο του DOS. Αν όμως πω: "netsh interface show interface > d:\text.txt" τότε το αρχείο text.txt φτιάχνεται με το περιεχόμενό του να μην διαβάζεται. Συγκεκριμένα περιλαμβάνει τα εξής:

‰«α©«© › ®ε¨.    ‰«α©«©          ’秦             £ › ©η¤›© 
-------------------------------------------------------------------------
„¤¨ζ        λ ¤ §¦©η¤›© ƒ©£¬£β¤¦       ’¦§ ΅γ ©η¤›©
„¤¨ζ        λ ¤ ©η¤›©  ƒ©£¬£β¤¦       wifi

Πώς θα καταφέρω να το κάνω να γράψει σωστά τα ελληνικά;

Επεξ/σία από doctorized
Δημοσ. (επεξεργασμένο)

Στη γραμμή εντολών η κωδικοποίηση είναι OEM737 ενώ τα windows χρησιμοποιούν ANSI 1237, ISO 8859-7 και UTF-8.

Θα έλεγα να δώσεις πρώτα μια εντολή chcp 1253 για να αλλάξεις την κωδικοποίηση στο command prompt σε ansi 1253 και μετά δώσε την netsh.
Εναλλακτικά, μπορείς μέσω του notepad2 ή του notepad++ να αλλάξεις την κωδικοποίηση του τελικού αρχείου κειμένου σε oem 737. Στο notepad2 πας File->Encoding->Recode και επιλέγεις OEM (737).

Επεξ/σία από micos000
Δημοσ.
12 ώρες πριν, antbyron είπε

Έχεις αλλάξει το system locale σε ελληνικά;

Control Panel\Clock, Language, and Region\Language\Location

  Απόκρυψη περιεχομένων

Capture.JPG.17b3f4826d9811ac211906607b3f1628.JPG

Σε όλα αυτά η γλώσσα είναι από μόνη της τα ελληνικά, τοποθεσία Ελλάδα, για Non unicode ελληνικά. Αν χρησιμοποιηθεί η εντολή "chcp 1253" λύνεται εν μέρει το πρόβλημα. Λέω εν μέρει γιατί θέλω να τρέξω τις εντολές αυτές προγραμματιστικά, μέσα από δικό μου πρόγραμμα δηλαδή. Το θέμα είναι ότι η εντολή που γράφω δεν παίρνει δεύτερη εντολή. Δοκίμασα με enter μπας και καταφέρω κάτι αλλά δεν: "chcp 1253" + Chr(13) + Chr(10) + "/c netsh interface show interface > d:\txt3.txt" αλλά το αρχείο αποθηκεύεται κανονικά χωρίς την αλλαγή κωδικοσελίδας. (το chr(13) + Chr(10) είναι το enter) Δοκίμασα "/u /c netsh interface show interface > d:\txt3.txt" για unicode αλλά δεν βοήθησε.

Δημοσ. (επεξεργασμένο)

Αν βάλεις τις εντολές σε ένα bat και το τρέξεις από το πρόγραμμα σου δεν θα γίνει;

EDIT:
Το έψαξα λίγο και μπορείς να κάνεις one-liners εντολές στο command prompt χωρίζοντας τες με το &&, δηλαδή στο θέμα σου.
 

chcp 1253 && netsh int show int >d:\txt3.txt && chcp 737

(στην netsh δε χρειάζεται να γράφεις όλη τη λέξη όπως  interface. Μπορείς να γράψεις τα πρώτα γράμματα π.χ. int)

Επεξ/σία από micos000

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...