Archiv der Kategorie: Batch

ECHO‘ is not recognized as an internal or external command,

Hin und wieder verwende ich zum Bearbeiten von Scripts die Software „Visual Studio Code“. Schlicht und ergreifend, weil ich diesen Editor umstellen kann, sodass der Hintergrund dunkel ist, was für die Augen ganz angenehm ist.

Wenn man allerding mit Code ein neues Batchfile erstellt, kann es passieren, dass man beim späteren Ausführen auf folgenden Fehler stösst:

C:\Windows\system32>´++@ECHO OFF
‚´++@ECHO‘ is not recognized as an internal or external command, operable program or batch file.

Nach einigem Gesuche bin ich dann schnell auf die Ursache gestossen:
Microsoft Visual Code verwendet utf-8 als Standardcodierung. Somit ist das Batch nicht richtig lesbar.
Abhilfe schafft man dadurch, dass man das Batch mit Notepad öffnet und bei „Speichern als…“ die Codierung auf ANSI umstellt.

ANSI Echo offBeim Öffnen bestehender Batchfiles habe ich das Problem noch nicht gehabt.
Wenn man möchte, kann man das umgehen, indem man in „Visual Studio Code“ die Standardcodierung umstellt:
Unter Files –> Preferences –> Settings findet man folgenden Eintrag:

// The default character set encoding to use when reading and writing files.
„files.encoding“: „utf8“,

Hat man die Zeile ausgewählt, kann man links auf ein Stiftsymbol klicken und hat dann die Auswahl aus den einstellbaren Zeichensätzen.

brace expansion: Verzeichnisse erstellen und löschen

Wenn man ein Verzeichnis mit mehreren Unterordnern erstellen will, kann man natürlich per mkdir jeden Ordner einzeln anlegen.
Das Ganze kann man allerdings auch einfacher haben.

Konkretes Beispiel: Beim Anlegen von Projektverzeichnissen kann es hilfreich sein, wenn man die benötigten Unterordner gleich mit erstellen kann:

sudo mkdir -p /Projekte/Nummer220/{Hardware,Software,Dokumentation}

Das ‚-p‘ muss mitgenommen werden, da dadurch die benötigten übergeordneten Verzeichnisse (in diesem Fall die ‚Nummer220‘) erstellt werden.
Im Verzeichnis ‚/Projekte‘ wird nun ein Ordner ‚Nummer 220‘ mit den Unterordnern ‚Hardware‘, ‚Software‘ und ‚Dokumentation‘ angelegt.

Was für das Erstellen von Verzeichnissen gilt, geht auch beim Löschen.
Will man das Projektverzeichnis behalten, aber die Unterordner löschen, kann man das mit folgendem Einzeiler tun:

 sudo rm -r /Projekte/Nummer220/{Hardware,Software,Dokumentation}

Wichtig ist dabei, dass man das ‚-r‘ für rekursiv setzt, da man ansonsten einige Fehlermeldungen bekommt, da ‚rm‘ ansonsten von Dateien ausgeht und den Dienst verweigert.

Windows: Uptime anzeigen

Will man sich nur die Startzeit des Systems anzeigen lassen, tippt man in der Commandline einfach ’starttime‘ ein.
Kein Schnick, kein Schnack, kein Taskmanager usw.

Ich habe mir jetzt folgendes Batch erstellt und in C:\Windows\System32\EigeneBatches gespeichert:

@echo off
:: Autor:            Peter Maier
:: Datum:            17.06.2016
:: Dateiname:        starttime.bat
:: Beschreibung:    Zeigt die Startzeit eines PCs an. 
:: Verwendung:        cmd --> starttime
:: Abhängigkeiten:    Bordmittel
:: Quelle:             http://www.psteiner.com/2013/05/windows-uptime.html
::#######################################################
:: Variablen
:: Funktionen
:: Eigentliches Script
:: englisches Windows
:: for /f "tokens=1,2,*" %%i in ('net statistics workstation ^| find "since"') do @echo %COMPUTERNAME% up since %%k
::deutsches Windows
for /f "tokens=1,2,*" %%i in ('net statistics workstation ^| find "seit"') do @echo %%k

Ich habe den ursprünglichen Teil für ein englisches Windows mal drin gelassen. Sollte es nicht funktionieren, muss man ggfs. einfach mal ’net statistics workstation‘ auf der Kommandozeile ausführen.
Dann hat man schon mal die Info, welche Informationen es hier gibt.
Im deutschen Text steht in der Zeile z.B.

Statistik seit 22/06/2016 13:56:21

Wenn man es sich in der System32 ablegt oder eine PATH Variable auf das passende Verzeichnis setzt, kann man nun einfach ’starttime‘ eingeben und bekomt die gewünschte Info.

Linux: Dateiliste mit ls und voller Pfadangabe

Gesucht war eine Auflistung aller Dateien eines Ordners mit absolutem Pfad

-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file1
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file2
Hier ist die Lösung, die ich dazu gefunden habe:

find /tmp -type f -print0 | xargs -0 ls -laS | sed -r ’s#( +)#\t#1′ | sed -r ’s#( +)#\t#1′ | sed -r ’s#( +)#\t#1′ | sed -r ’s#( +)#\t#1′ | sed -r ’s#( +)#\t#1′ | sed -r ’s#( +)#\t#3′

 

Ergebnis:

-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file1
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file2
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file3
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test1/file4
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test2/file1
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test2/file2
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test2/file3
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test3/file1
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test3/file2
-rw-r–r–      1       root    root    0       2009-06-17 14:08 /tmp/test3/file3

 

Beziehungsweise:

find /tmp -type f -print0 | xargs -0 ls -laS | sed -r ’s#\S+\s+\S+\s+\S+\s+\S+\s+(\S+)\s+(\S+\s+\S+\s+\S+)\s+(.*)#\1\t\2\t\3#‘
als etwas kürzere Variante  🙂

 

gefunden habe ich das hier:
http://www.fedoraforum.de

Windows 8 / 10 – Wie man den Windows-Key aus dem UEFI BIOS liest

Es mag euch schon aufgefallen sein, dass man bei neueren PCs und Laptops, die man mit OEM-Lizenz ausgeliefert bekommt, keine Lizenzaufkleber mehr findet.
Die Lizenz wird auf dringlichen Wunsch von Microsoft von den Herstellern im UEFI BIOS hinterlegt.
Hier sind Möglichkeiten, wie man den Lizenzkey von Windows 10 (und auch 8) auslesen kann:
(ACHTUNG: Funktioniert nicht unter Windows 7)

  1. START –> cmd , um eine DOS-Box zu erhalten
  2. Folgenden Befehl eingeben und ausführen:
    wmic path softwarelicensingservice get oa3xoriginalproductkey
  3. Jetzt sollte der Lizenzkey angezeigt werden. Einfach per Screenshot speichern oder abschreiben und gut verwahren, damit man bei einer Neuinstallation keine Probleme bekommt.
  4. Man kann sich das Ganze natürlich auch in eine Textdatei ausgeben lassen 🙂
    wmic path softwarelicensingservice get oa3xoriginalproductkey > %username%\desktop\Windows_License.txt
  5. Per Powershell liest sich der Aufruf so:
    powershell „(Get-WmiObject -query ’select * from SoftwareLicensingService‘).OA3xOriginalProductKey“

Natürlich gibt es auch einige Tools im Internet, mit denen man das auslesen kann, aber man sollte sich nicht unnötigerweise das System vollmüllen.