Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Erklärung von DOS Kommandos

Frage Entwicklung Batch & Shell

Mitglied: 13Stift37

13Stift37 (Level 1) - Jetzt verbinden

27.10.2014, aktualisiert 12:05 Uhr, 1002 Aufrufe, 7 Kommentare

Hallöchen

Ich habe aus einem anderen Tread hier aus dem Forum eine funktionierende Batch Datei für meine Zwecke gefunden und so bearbeitet, wie es mir mit meinem Wissen möglich war. Nun möchte ich aber gerne verstehen was dort eigentlich getan wird. Ich bin in der Programierer Welt noch ziemlich neu und habe früher nur in C Programmiert (Grundkenntnisse). Somit sind mir einige Befehle schon bekannt. Jedoch nicht alle. Mit der help funktion in der cmd habe ich ebenfalls keine Erleuchtung gefunden °~°
Hier ist einmal der Inhalt der Batch Datei:
01.
@echo off & setlocal enabledelayedexpansion 
02.
del C:\pcliste.txt 2>&1>nul 
03.
del C:\tvids.txt 2>&1>nul 
04.
for /L %%A in (0,1,254) do ( 
05.
for /F "tokens=3 delims= " %%B in ('tracert -h 1 -w 100 192.168.101.%%A ^| find "Routenverfolgung"') do @echo %%B >> c:\pcliste.txt ) 
06.
 
07.
For /F %%a in (c:\pcliste.txt) do ( 
08.
 
09.
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "\\%%a\HKEY_LOCAL_MACHINE\Software\Wow6432Node\Teamviewer\Version4" /V "ClientID"') do (set /a "LAD=%%j" set /a "LAD=%%j" & @echo %%a !LAD! >> c:\tvids.txt) 
10.
11.
 
12.
type C:\tvids.txt 
13.
pause
Wäre Super wenn Ihr mir Zeile 4 - 9 erklären könntet

Mit freundlichen Grüßen.
Mitglied: ITvortex
LÖSUNG 27.10.2014, aktualisiert um 11:22 Uhr
Morgen,

hier findest du ein schöne Tutorial: http://www.administrator.de/wissen/tutorial-zur-for-schleife-155681.htm ...

Liebe Grüße
ITvortex.

PS: Falls dann noch erklärungsbedarf ist bescheid geben
Bitte warten ..
Mitglied: 13Stift37
27.10.2014 um 11:24 Uhr
Hey vielen Dank dafür!
Somit sind Zeile 5-7 schonmal verständlicher!

Allerdings habe ich Zeile 9 immer noch nicht verstanden. Was wird bei
01.
do (set /a "LAD=%%j" set /a "LAD=%%j" & @echo %%a !LAD! >> c:\tvids.txt)
genau getan?
Bitte warten ..
Mitglied: ITvortex
27.10.2014, aktualisiert um 11:44 Uhr
cmd:

01.
set /?


01.
Die /A-Option gibt an, dass die Zeichenfolge rechts vom Gleichheitszeichen 
02.
ein numerischer Ausdruck ist, der ausgewertet wird. Das Auswertungsprogramm 
03.
des Ausdrucks unterstützt dabei die folgenden Vorgänge, entsprechend ihrer 
04.
Anordnung mit abnehmendem Vorrang: 
05.
 
06.
 
07.
    ()                  - Gruppierung 
08.
    ! ~ -               - monäre Operatoren 
09.
    * / %              - arithmetische Operatoren 
10.
    + -                 - arithmetische Operatoren 
11.
    << >>               - logische Verschiebung 
12.
    &                   - bitweise UND 
13.
    ^                   - bitweise exklusives ODER 
14.
    |                   - bitweise ODER 
15.
    = *= /= %= += -=    - Zuordnung 
16.
    ,                   - Trennzeichen für Ausdrücke 
17.
 
18.
Wenn Sie einen der arithmetischen oder Moduloperatoren verwenden, müssen 
19.
Sie die Zeichenfolge für den Ausdruck in Anführungszeichen setzen. Alle 
20.
nicht-numerischen Zeichenfolgen im Ausdruck werden als Zeichenfolgen von 
21.
Umgebungsvariablen behandelt, deren Werte vor der Verwendung in Zahlen 
22.
konvertiert werden. Wenn eine Umgebungsvariable angegeben wird, die nicht 
23.
definiert ist, wird für diese der Wert Null verwendet. Somit können Sie 
24.
mit Umgebungsvariablen Berechnungen vornehmen, ohne %-Zeichen einzugeben, 
25.
um deren Werte zu erhalten. Wenn der Befehl SET /A von der Befehlszeile, 
26.
d.h. außerhalb eines Befehlsskripts ausgeführt wird, dann zeigt er 
27.
den endgültigen Wert des Ausdrucks an. Der Zuordnungsoperator erfordert 
28.
eine Umgebungsvariable auf der linken Seite des Operators. Numerische Werte 
29.
stellen immer Dezimalzahlen dar, es sei denn, sie haben ein Präfix 0x für 
30.
hexadezimale Zahlen, 0b für binäre Zahlen oder 0 für oktale Zahlen. Damit 
31.
stellt 0x12 dieselbe Zahl wie 18 oder 022 dar. Beachten Sie, dass die oktale 
32.
Schreibweise verwirrend sein kann: So sind 08 und 09 keine gültigen Zahlen, 
33.
da 8 und 9 keine erlaubten oktalen Ziffern sind.
Liebe Grüße
ITvortex
Bitte warten ..
Mitglied: 13Stift37
27.10.2014, aktualisiert um 12:01 Uhr
01.
set /a "LAD=%%j" set /a "LAD=%%j"
Was bedeutet denn LAD und wieso wird 2 mal die Variable &&j gesetzt? In der .txt datei später steht an dieser stelle nur der Computer Name und der Domänen Name.
01.
@echo %%a !LAD! >> c:\tvids.txt
Und was hat hier das !LAD! wieder zu bedeuten?

Ich bin leicht verwirrt °~°

Ausgabe in der tvids.txt ist:
01.
Test-PC-1.test.netz 123456789 
(123456789 == TeamviewerID)
Bitte warten ..
Mitglied: miniversum
27.10.2014 um 12:29 Uhr
Hallo,

das macht für mich so auch keinen Sinn und (ungetestet) würde ich fast behaubten das Du da auch eine Fehlermeldung sehen müstest.
set /a "LAD=%%j" set /a "LAD=%%j"
ist einfach nur doppelt und du kannst das erste weglassen.
Was hier passiert wäre dann ein speichern des entsprechenden Registryeintrags in der Variabeln %%j.
Dann wird durch:
set /a "LAD=%%j" & @echo %%a !LAD! >> c:\tvids.txt
der Eintrag %%J in LAD hinterlegt.
di eVariable LAD kanns tdu dann normalerweise mit %LAD% abrufen. Dies funktioniert allerdings nicht innerhalb einer Schleife. Daher wurde hier in Zeile 1 setlocal enabledelayedexpansion ausgeführt wodurch dies dann mmöglich wird. Dafür musst Du dann allerdings nicht %LAD% sondern !LAD! benutzen.
Das Echo gibt dann also den jeweiligen eintrag aus pcliste.txt zusammen mit dem zugehörigen registry Eintrag LAD aus.
Da LAD anschließend nicht mehr vernwendet wird kannst du dir das Ganze mit !LAD! aber auch spaaren und direkt %%J benutzen. Das würde dann so ausehen:
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "\\%%a\HKEY_LOCAL_MACHINE\Software\Wow6432Node\Teamviewer\Version4" /V "ClientID"') do (echo %%a %%J >> c:\tvids.txt)
Bitte warten ..
Mitglied: 13Stift37
27.10.2014, aktualisiert um 12:46 Uhr
Hallo miniversum!

Danke für diese Logische erklärung
Ich habe einmal deinen Code ausprobiert, nun bekomme ich allerdings die TeamViwer ID nicht mehr angezeit. Nun steht dort:
01.
Test-PC-1.test.netz 0x36c74755
Was hat das zu bedeuten? :D

//Edit:

Ich habe es nun so gemacht:
01.
set /a "LAD=%%j" & echo %%a !LAD! >> c:\tvids.txt
Und er zeigt mir die richtige ID wieder an.
Du hattest mit dem doppelt abfragen recht, war nicht nötig. Und das mit dem LAD ist mir nun auch einigermaßen klar.

Ich markiere dies nun als gelöst, da ich den Code nun verstanden habe.

Vielen Dank für eure Hilfe!
Bitte warten ..
Mitglied: miniversum
28.10.2014 um 12:54 Uhr
Hallo,

ok dann ist mir klar warum der Umweg über set. ich behaubte mal ganz frech das 0x36c74755 einfach nur der Hexwert der ID ist.
Da ist kein TeamViewer verwende kann ich es auch nicht hier testen.

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Dos-Box, seltsame(s) Zeichen - Was und woher? (6)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Backup
Backup mit robocopy - Erklärung benötigt (1)

Frage von haximurati zum Thema Backup ...

Batch & Shell
Erklärung Batch (6)

Frage von Anrion zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...