Nur neueste Datei per Batch kopieren

Du hast ein großes Verzeichnis mit vielen Protokollen einer Anwendung und es soll einfach nur die eine neueste Datei an einen anderen Ort kopiert werden?

Das folgende Batch-Skript durchläuft alle Dateien in dem Quellverzeichnis und kopiert die neueste in ein anderes Verzeichnis:

Erreichbarkeit eines Gerätes via Ping per Batch prüfen

Ist ein Computer oder ein anderes Gerät im Netzwerk erreichbar bzw. kann dieses angepingt werden? Genau das lässt sich mit dem folgenden Batch-Skript überprüfen.

Prüfen, ob aktueller Benutzer Administratorenrechte hat (Batch)

Sollen Änderungen per Skriptdatei ausgeführt werden die Administratorenrechte erfordern, so kann mit dieser Batch geprüft werden, ob die notwendigen Adminrechte vorhanden sind.

Es werden einfach nur die lokalen Gruppen des angemeldeten Benutzers geholt und geprüft, ob die Gruppe Administratoren mit der SID „S-1-16-12288“ darin enthalten ist.

Sleep in Batch-Dateien mit Boardmitteln

Manchmal ist es notwendig in Batch-Dateien auf irgendetwas zu warten, also die Abarbeitung der darauf folgenden Befehle zu verzögern. Bekannt dafür sind die Befehle „sleep“ oder „wait“, welche aber leider nicht bei (allen) Windows-Versionen mitgeliefert werden / wurden. In den Windows Resource Kits, welche kostenlos nachinstalliert werden können, sind diese aber enthalten.
Ich stelle hier Lösungen vor die ohne zusätzlich installierte Befehle oder Utilities funktionieren.

Alle Versionen
Der Befehl „ping“ existiert immer und mit dem Parameter „-n“ kann die Anzahl der Versuche gesteuert werden. Zwischen den Versuchen wird immer eine Sekunde gewartet. Also können wir die Batch eine bestimmte Anzahl von Sekunden, hier 10, mit etwas beschäftigen.

Das „> nul“ am Ende sorgt nur dafür, dass die Ping-Versuche nicht in der Konsole angezeigt werden.

Windows Vista / 7
Seit Vista gibt es den Befehl „timeout“ der mit dem Parameter „/t“ eine fixe Sekundenanzahl wartet, oder durch Tastendruck die Abarbeitung fortsetzt.

„Choice“ kann ebenso verwendet werden, siehe Beispiel unten.

Windows XP / 2003 Server
Hier kann nur der Ping-Befehl verwendet werden.

Windows 95 / 98 / ME / 2000
Hier kann auch der Ping-Befehl verwendet werden, oder „choice“.
Eigentlich wird choice verwendet um Benutzereingaben abzufragen, aber mit dessen Parameter „/t“ kann die maximale Wartezeit definiert werden, was wir wieder um zweckentfremden können.

Mehrere Computer anpingen und das Ergebnis speichern

Das folgende Batch-Skript pingt jeden Host in der Datei „Computer.txt“ an und speichert das Ergebnis entweder in die Datei „PC-Online.txt“ oder „PC-Offline.txt“, je nachdem ob der Host verfügbar ist oder nicht.

Einen IP-Bereich per Batch pingen

Keine Tools zur Hand und dann mal eben einen IP-Bereich nach (nicht) erreichbaren Hosts prüfen!?
Per Batchskript funktioniert das wie folgt:

Der Haken an diesem Cmdskript ist die Laufzeit, denn der Timeout dauert pro Computer ein wenig, obwohl immer nur ein Versuch gemacht wird.

Trotzdem eine valide Notlösung! 😉

Zwei Dateien vergleichen mit „fc“

In der Eingabeaufforderung oder per Batch zwei Dateien zu vergleichen ist ziemlich einfach, wenn es nur darum geht, zu prüfen, ob deren Inhalte identisch sind oder nicht. Die Differenz wird allerdings nicht angezeigt.
Die folgende Batchdatei prüft, ob der Inhalt von „Datei1.txt“ und „Datei2.txt“ gleich ist. Wenn ja passiert nichts, wenn nein wird die Anwendung „TuWas.exe“ ausgeführt.

IP-Konfiguration per Netsh ändern

Mit meinem Notebook bin ich häufig unterwegs, entweder im Geschäft, Zuhause, bei Kunden, oder Freunden. Dabei hat mich immer häufiger gestört, dass ich jedes mal die IP-Einstellungen meiner Netzwerkverbindung an das jeweilige LAN per Hand anpassen muss, um ins Netzwerk bzw. das Internet zu gelangen. Einige haben zwar DHCP, aber andere wieder nicht. Hinzu kommt, dass sich diese Daten ja eigentlich nicht so häufig ändern.
Das es für das o.g. Problem Hilfsmittel und grafische Tools gibt, weiß ich ja. Hier wäre zum Beispiel „NetSetMan“ zu nennen.
Ich möchte aber nicht erst ein grafisches Programm ausführen, darin ein Profil auswählen und dann einen Button klicken, also erledige ich das per Skript. Das machen übrigens sehr viele Leute, denn ich habe hunderte Beiträge mit funktionierenden Lösungen gefunden.

Unter Windows XP nutze ich den Befehl „Netsh“ wie folgt:

Sollen die Daten per DHCP eingestellt werden, so hilft das folgende Skript:

Den Namen der Netzwerkverbindung, bei mir „LAN-Verbindung“ müsst ihr natürlich noch an eure Daten anpassen , ebenso die IP-Adressen.

Siehe auch:
Netzwerk per Registry konfigurieren

Verzeichnis mit aktuellem Datum erstellen

Für Protokolle oder Sicherungen benötigt man immer wieder Verzeichnisse die täglich neu angelegt werden und die das aktuelle Datum enthalten.
Das folgende Skript legt ein Verzeichnis im folgenden Format an: Backup_Jahr-Monat-Tag, also z.B. „Backup_2009-02-10“

Batch-Skript:

Zeile in Datei finden und exportieren

Einen bestimmten String in einer Datei zu suchen und in einer weiteren die Zeile zu speichern ist unter Linux ganz einfach. Unter Windows und in einer Batchdatei gar nicht so viel schwerer, wenn man denn weiß wie es geht.