Μπορώ να εκτελέσω ένα αρχείο παρτίδας των Windows χωρίς μια ορατή γραμμή εντολών;
Τα αρχεία δέσμης είναι ένας εύχρηστος τρόπος εκτέλεσης μιας σειράς εντολών στα Windows, αλλά υπάρχει ούτως ή άλλως για να τα εκτελέσετε αόρατα στο παρασκήνιο; Διαβάστε παρακάτω για να μάθετε πώς.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Το ερώτημα
Ο αναγνώστης SuperUser Jake θέλει να τρέξει ένα αρχείο BAT αόρατα, γράφει:
Έχω εγκαταστήσει ένα ρουμπίνι κόσμημα που ονομάζεται Redcar, το οποίο εκκινείται από τη γραμμή εντολών. Όταν τρέχει, κλέβει το κέλυφος μέχρι να τελειώσει, οπότε πρέπει να δημιουργήσω ένα νέο παράθυρο κελύφους για να συνεχίσω να δουλεύω με γραμμή εντολών. Το κέλυφος που χρησιμοποιώ είναι το κέλυφος GITBash από το MySysGit.
Βρήκα ένα αρχείο Redcar.bat το οποίο θέλει να ξεκινήσει το Redcar ως συντόμευση, υποθέτω, αλλά δεν θέλω το παράθυρο της γραμμής εντολών να ανοίξει κάθε φορά που ξεκινώ το αρχείο BAT.
Πώς μπορώ να εκτελέσω την BAT χωρίς να βλέπω την προτροπή?
Υπάρχει λύση για την ταχεία επιθυμία του Τζέικ?
Οι απαντήσεις
Ο συνεργάτης του SuperUser Afrazier απαντά με ένα συνδυασμό κακών και καλών ειδήσεων:
Δεν μπορείτε - εκτέλεση ενός αρχείου δέσμης με την ενσωματωμένη γραμμή εντολών θα κρατήσει ένα παράθυρο ανοιχτό μέχρι να εξέλθει το αρχείο παρτίδας.
Τι εσύ μπορώ κάντε τα βήματα για να βεβαιωθείτε ότι το αρχείο δέσμης εξέρχεται το συντομότερο δυνατόν. Εάν είναι δυνατόν, τροποποιήστε το αρχείο παρτίδας για να εκτελέσετε οποιοδήποτε πρόγραμμα με το
αρχή
εντολή. Από προεπιλογή,αρχή
επιστρέφει αμέσως χωρίς να περιμένει την έξοδο του προγράμματος, έτσι ώστε το αρχείο παρτίδας να συνεχίσει να τρέχει και, προφανώς, να βγει αμέσως. Ζευγάρι που με την τροποποίηση της συντόμευσης σας για να εκτελέσετε το αρχείο παρτίδας ελαχιστοποιήθηκε και θα δείτε μόνο τη γραμμή εργασιών να αναβοσβήνει χωρίς καν να δει ένα παράθυρο στην οθόνη.Μια προειδοποίηση σε αυτό είναι ότι εάν εκτελείτε ένα πρόγραμμα λειτουργίας κονσόλας, το οποίο πολλοί διερμηνείς δέσμης ενεργειών είναι, το αρχείο παρτίδας θα περιμένει το πρόγραμμα να τερματίσει και χρησιμοποιώντας
αρχή
θα δημιουργήσει ένα νέο παράθυρο κονσόλας. Αυτό που πρέπει να κάνετε σε αυτήν την περίπτωση είναι να εκτελέσετε την έκδοση των διερμηνέων που βασίζεται στα Windows αντί για την κονσόλα που βασίζεται σε ένα - όχιαρχή
ΑΠΑΡΑΙΤΗΤΗ. Για τον Perl, θα τρέξατεwperl.exe
αντίperl.exe
. Για την Python, είναιpythonw.exe
αντίpython.exe
. Το παλιό win32 Ruby διανομή που έχω κατεβάσει έχειrubyw.exe
, που πρέπει να κάνουν το ίδιο πράγμα.Μια τελευταία δυνατότητα είναι να χρησιμοποιήσετε ένα εργαλείο τρίτου μέρους για να εκτελέσετε τη γραμμή εντολών με ένα κρυφό παράθυρο. Έχω ακούσει για τέτοια πράγματα, αλλά ποτέ δεν τους χρησιμοποίησα, οπότε δεν ξέρω τίποτα ειδικότερα για να σας δείξω.
Οι αναγνώστες τον επισήμαναν επίσης σε ένα άλλο νήμα SuperUser που υπογραμμίζει τον τρόπο με τον οποίο μπορείτε να χρησιμοποιήσετε ένα Visual Basic Script για να υπερβείτε την ελαχιστοποίηση της ορατότητας και να αποκρύψετε τελείως την προτροπή CMD. Σε αυτό το νήμα, ο Harry MC εξηγεί:
Λύση 1:
Αποθηκεύστε αυτήν τη μια γραμμή κειμένου ως αρχείο
invisible.vbs
:CreateObject ("Wscript.Shell") Εκτελέστε "" "& WScript.Arguments (0) &" "", 0, False
Για να εκτελέσετε αόρατα οποιοδήποτε πρόγραμμα ή αρχείο δέσμης, χρησιμοποιήστε το ως εξής:
wscript.exe "C: \ Όπου \ invisible.vbs" "C: \ Κάποια άλλα μέρη \ MyBatchFile.bat"
Για να μπορείτε επίσης να μεταφέρετε / αναμεταδίδετε μια λίστα με επιχειρήματα, χρησιμοποιήστε μόνο δύο διπλά εισαγωγικά
CreateObject ("Wscript.Shell") Εκτελέστε "" & WScript.Arguments (0) & "", 0, False
π.χ.: Invisible.vbs "Kill.vbs ME.exe"
Λύση 2:
Χρησιμοποιήστε ένα εργαλείο γραμμής εντολών για να ξεκινήσετε σιωπηλά μια διαδικασία: Ήσυχη.
Η χρήση οποιασδήποτε από τις παραπάνω λύσεις, με βάση το επίπεδο άνεσής σας χρησιμοποιώντας VBS και άλλα εργαλεία τρίτων, θα ελαχιστοποιήσει την ορατότητα του παραθύρου της CMD ή θα την καταργήσει απόλυτα.
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.