Besser als MSDOS Batch-Dateien? [geschlossen]

8

Gibt es etwas Besseres, als MSDOS in einer Bat-Datei zu verwenden, um Befehlszeilenoperationen auszuführen und Dateien zu kopieren.

Ich stoße in die alten Kastanien "gotchas" mit langen Dateinamen usw. - und aus irgendeinem Grund wird die Fledermaus-Datei nicht pausieren - wenn ich nach dem Ausführen eines Befehls PAUSE in mein Skript einfüge - es ist nur nervig.

Was ist da draußen besser?

Prost Leute.

BTW - Ich habe mir Powershell angeschaut und es sieht so aus, als ob der Admin des Netzwerks / Systems Powershell auf unseren PCs blockiert hat (nett).

    
Vidar 04.06.2009, 17:34
quelle

15 Antworten

21

Sehen Sie sich PowerShell

an     
CoderDennis 04.06.2009, 17:37
quelle
6

Es gibt ein paar Faustregeln bei der Arbeit mit Fledermaus-Dateien.

  • Verwenden Sie setlocal endlocal, um Ihre Umgebungsvariablen außerhalb des Skripts zu speichern
  • Verwenden Sie doppelte Anführungszeichen, wenn Sie mit Dateien arbeiten, um Dateien mit Leerzeichen im Namen
  • zuzulassen
  • Verwenden Sie Pushd / Popd anstelle von CD, um zwischen den Verzeichnissen zu wechseln, funktioniert auch mit UNC-Pfaden
  • Wenn Sie eine andere Fledermaus-Datei ausführen, verwenden Sie das Schlüsselwort call davor oder Ihr Skript überträgt die neue Fledermaus-Datei und kehrt nie zum Original zurück.

Beispiel: quicksql.bat

@echo aus
setlocal

wenn "% 1" == "" zur VERWENDUNG
setze server =% 1
wenn "% 2" == "" gehe zu NUTZEN
set database =% 2
wenn "% 3" == "" gehe zu NUTZEN
setze script =% 3

sqlcmd.exe -S% Server% -d% Datenbank% -i "% script%"
gehe zu EOF

: VERWENDUNG

echo% 0 Server-Datenbankskript

: EOF
Endlocal

    
Jeremy E 04.06.2009 18:02
quelle
5

Tatsächlich bedeuten Antworten, die sich auf VBScript beziehen, wirklich Windows Scripting Host :

  

WSH ist ein sprachunabhängiger Skript-Host für 32-Bit-Windows-Plattformen. Microsoft stellt sowohl die Microsoft Visual Basic Script als auch Java Script -Skript-Engines mit WSH zur Verfügung. Es dient als Controller für ActiveX-Scripting-Engines, genau wie der Microsoft Internet Explorer. Da der Skript-Host kein vollständiger Internet-Browser ist, hat er einen kleineren Speicherbedarf als der Internet Explorer. Daher eignet sich WSH zum Ausführen einfacher, schneller Aufgaben. Skripts können direkt vom Desktop aus ausgeführt werden, indem auf eine Skriptdatei oder von einer Eingabeaufforderung aus doppelgeklickt wird. WSH stellt einen Scripting-Host mit geringem Speicherbedarf bereit, der sich ideal für nicht interaktive Skriptanforderungen eignet, z. B. für Anmeldeskripts, administrative Skripts usw. WSH kann entweder vom Windows-basierten Host im geschützten Modus (Wscript.exe) oder vom Shell-basierten Host im Realmodus (Cscript.exe) ausgeführt werden.

Jede Windows-Sprache (außer vbs und js ), die Zugriff auf die gute alte COM ( ActiveX ) hat, kann dieselben Scripting-Objekte verwenden. Python ist ein Beispiel und .NET mit P-Invoke ist ein anderes.

Das Script Center-Skript-Repository auf technet enthält viele Beispiele für WSH Verwendung in der Systemadministration, meist in VBS .

    
gimel 04.06.2009 18:34
quelle
4

VB-Skript in einer einfachen .vbs-Datei.

    
Dan Byström 04.06.2009 17:36
quelle
3

Ich installiere routinemäßig bash und Freunde auf jeder Windows-Box, die ich verwende. Viele Leute benutzen Cygwin dafür, aber ich bevorzuge MinGW .

    
T.E.D. 04.06.2009 18:02
quelle
2

Installiere cygwin und benutze bash scripts, installiere perl und benutze perl scripts, installiere ant und benutze ...... hmmm ... ich vergesse was du da verwendest. Oh warte ... Ameisenskripte

    
Jherico 04.06.2009 17:47
quelle
0

siehe - Windows Powershell (früher Monade)

    
abhilash 04.06.2009 17:37
quelle
0

Scripting PowerShell soll ziemlich nett sein. Ich habe es jedoch noch nie gemacht, und Sie, wenn Sie beabsichtigen, das Skript zu verteilen, benötigen auch die Skriptbenutzer PowerShell.

    
PeterAllenWebb 04.06.2009 17:37
quelle
0

Die neue Hotline-Befehlszeile und -Skriptsprache von Microsoft heißt PowerShell . Es behebt viele der Probleme von Batch-Dateien.

    
Ryan 04.06.2009 17:38
quelle
0

Ebenfalls veraltet ist 4DOS. Beachten Sie die Lizenzierung.

    
kmarsh 04.06.2009 17:49
quelle
0

Windows Scripting Host .

  • Sie können eine Vielzahl von Sprachen verwenden implementieren wie VBScript, JScript, oder Python (ich glaube, ich habe es sogar gesehen Perl).
  • Sie erhalten vollen Zugriff auf die integrierte Sprachbibliotheken.
  • Sie bekommen reichere APIs als mit dem einfache Ole-Shell.
  • WSH ist in enthalten alle Versandversionen von Windows.
  • Sie kann Sprachen mischen und anpassen, wiederverwenden Blöcke, neue Bibliotheken usw. hinzufügen.
James Schek 04.06.2009 18:26
quelle
0

Befehl übernehmen ist eine Option. Ich benutze es und liebe es:

Ссылка

Bietet eine echte Windows-Skriptsprache

  

164 Integrierte Befehle
245   Funktionen
159 Systemvariablen
  Älterer gut getesteter Code
Nach oben   kompatibel mit CMD.EXE mit buchstäblich   Tausende von Ergänzungen

    
William Leara 04.06.2009 18:38
quelle
0

Sie könnten Tcl berücksichtigen. Sie können eine einzelne ausführbare Datei namens tclkit abrufen und sie mit .tcl-Dateien verknüpfen. Tcl verfügt über sehr robuste Dateiverarbeitungsbefehle, und Sie haben auch die Möglichkeit, native Fenster anzuzeigen, um den Fortschritt anzuzeigen, Dateiwähler hinzuzufügen und ähnliches.

Tcl ist nicht jedermanns Sache, aber es ist ein sehr mächtiges Skript-Tool. Und mit tclkits ist die Bereitstellung trivial, da es nur eine kleine ausführbare Datei aus einer einzigen Datei ist.

    
Bryan Oakley 04.06.2009 19:34
quelle
0

Verwenden Sie ZTreeWin , es ist ein leistungsstarker Win32-Textmodus-Datei- / Verzeichnis-Manager und kann ohne Notwendigkeit ausgeführt werden installiert sein.

    
Rob Kam 04.06.2009 17:45
quelle
0

Erfahren Sie mehr über Python oder Ruby, es macht alles, was Powershell, VBScript, Perl, PHP und mehr tut;)

    
Jcc.Sanabria 06.02.2017 12:53
quelle