2017-08-23 3 views
0

Ich bin neu im Batch Scripting und habe einfach versucht, ein paar einfache Dinge zu tun und einige andere Anwendungen auszulösen. Zuerst legt mein Batch einige Variablen fest und dann sollten die Ergebnisse von einem Befehl in eine Datei gespeichert werden. Beide Teile alleine funktionieren gut, aber wenn ich sie zusammensetze, hört sie auf, nachdem ich die Variablen gesetzt habe. Kann mir jemand helfen?Batch stoppt nach dem Setzen von Variablen

Code:

set path=%cd% 
set filename=\MAC.txt 
set filepath=%path%%filename% 
arp -a |find "192.168.1.1">>%filepath% 
pause 
+0

'% path%' ist eine Systemvariable, die Fenster sagt, wo es Befehle zu finden. Ändern Sie es NICHT, es sei denn, Sie wissen genau, was Sie tun und warum. Verwenden Sie einen anderen Variablennamen, z. B.% mypath% – Stephan

Antwort

0

Da path ist die Variable durch cmd für die Suche nach ausführbaren Dateien verwendet werden, um es zu etwas zu ändern, wo arpist nicht bedeuten, dass Sie nicht in der Lage sein werden, arp zu lokalisieren und laufen .

Verwenden Sie einen anderen Variablennamen, wie zum Beispiel:

set filepath=%cd% 
set filename=\MAC.txt 
set fullname=%filepath%%filename% 
arp -a |find "192.168.1.1">>%fullname% 
pause 

Beachten Sie, dass dies noch ein anderes Problem in Ihrem ursprünglichen Skript vorhanden ist, die Tatsache, dass Räume in Ihrem aktuellen Verzeichnis zu Problemen führen kann (es sei denn Sie sie richtig zitieren).

Da Sie das aktuelle Verzeichnis ausschließlich verwenden, brauchen Sie vermutlich nicht über den Weg zur Sorge:

set fullname=.\MAC.txt 
arp -a |find "192.168.1.1">>%fullname% 
pause 
Verwandte Themen