Registrierung
leer
leer
newposts
Users
search
FAQ
Login
Start

Hallo Gast, und Willkommen im Forum. Sie müssen sich einloggen oder registrieren, um alle Funktionen nutzen zu können.


PN's Forum \ Computer \ Software \ Betriebssysteme \ Windows \ Windows 7: Batchscript (*.bat *.cmd) macht nichts


 Poison Nuke  *

#1 Verfasst am 16.06.2010, um 18:05:18



Hio,

Eigentlich soll es nur ein ganz einfaches Script sein, dass einen Befehl ausführt den ich normalerweise direkt in der Cmd Konsole ausführe wo er auch funktioniert


Quellcode
route change 192.168.0.0 mask 255.255.255.0 192.168.0.1


wäre der Befehl.

den hab ich einfach in eine Textdatei geschrieben und diese dann *.bat genannt.
Nur wenn ich diese Datei jetzt ausführe, dann wird mir lediglich dieser Befehl fortlaufend in die Ausgabe geschrieben, aber nicht ausgeführt und es nimmt kein Ende.


Auch ein nachfolgendes "exit" bringt nicht viel, der kommt da gar nicht hin, der schreibt mir einfach dauernd die erste Zeile in die Ausgabe

Wenn ich ein "@echo off" einfüge ändert sich nicht viel außer dass man nichts mehr sieht, aber dass auch ein hinter dem Befehl folgendes Echo nicht zu sehen ist gehe ich davon aus, dass hier auch einfach nur die erste Zeile unendlich oft ausgegeben wird ohne dass sie ausgeführt wird.


muss man irgendwas bei Win7 und Batchscripts was beachten?


greetz
Poison Nuke

EPIC

#2 Verfasst am 16.06.2010, um 18:46:05



Habe das mal gerade getestet (anderer Befehl, Ping xxxx). Die werden bei mir in der CMD ausgeführt. Ebenso wie unsinnsbefehle wie "fjaweoaifjweoijf" eine Fehlermeldung ausgeben .

Ich kann das Problem also hier nicht reproduzieren. (Win7 x64)
Auf der Arbeit kenn ich das PRoblem auch nicht, Startscripts werden auf Win7-Kisten eigentlich zuverlässig ausgeführt...

Eventuell ein Problem mit der UAC? Die ist bei mir komplett aus.


bearbeitet von EPIC, am 16.06.2010, um: 18:46:41


 Poison Nuke  *

#3 Verfasst am 16.06.2010, um 19:22:10



ne UAC ist gar nicht aktiv.

Das lustige ist, ich habe das Script gerade auf ein Ping Befehl geändert und die Datei ausgeführt... er pingt.


Gut dachte ich mir, teste ich dann erstmal den Befehl nochmal ob ich mich nicht vllt vertippt hatte, gebe also manuell den Befehl in die Kommandokonsole ein.... was passiert? beim ausführen des route befehls wird der Inhalt der Scriptdatei ausgeführt.... WTF ???? 8o


hab mal einen Screenshot gemacht:




man beachte, nach ausführen von einem route Befehl kommt IMMER ein "OK!" oder halt eine Fehlermeldung. Das Ping auf diese IP ist aber nur in der Scriptdatei drin.


nach dem Abbruch vom Batch hab ich die Datei auf ping geändert und dann ncomal ausgeführt und dann gings zumindest mit Ping
wenn ich aber wieder den route einfüge dann geht es wieder nicht...wtf, ich verstehs nicht


greetz
Poison Nuke

EPIC

#4 Verfasst am 16.06.2010, um 19:41:38



LOL, das wird hier aber langsam unheimlich. Wenn ich ein route change Befehl eintippe wird dieser korrekt ausgeführt, bzw es kommt eine Fehlermeldung wenn ich eine falsche Adresse nehme (was ja ein normales Verhalten ist, ich wollte mir jetzt nicht noch ne Route zerschießen)


Was passiert wenn du das Script in der Powershell ausführst?



 Poison Nuke  *

#5 Verfasst am 16.06.2010, um 19:46:23



da wäre erstmal die Frage, wie definiert man dass ein Script überhaupt über die PS ausgeführt wird? Hab noch nicht sonderlich viel mit der gearbeitet weil bisher konnte ich alle Automatisierungen, auch komplexere Sachen noch gut über die normale Shell machen, die PS war mir dann bisher zu umfangreich mit ihren ganzen Objektklassen usw :Y


und so einfach ne route zerschießen tust dir nicht. Zur not machst einfach "route -f", dann hast zwar erstmal gar nix mehr, wenn du dann aber in die Netzwerkumgebung gehst und den Standardgateway wieder einträgst, erzeugt Windows wieder alle Einträge (und lässt sogar einige absolut sinnlose weg).




greetz
Poison Nuke

 Poison Nuke  *

#6 Verfasst am 16.06.2010, um 20:21:14



argh..ich habs gerade rausgefunden :cut

wenn man die Datei intelligenterweise genauso benennt wie den Befehl, und Windows bei einem Befehl in der Kommandozeile einem Script/Programm im gleichen Verzeichnis die Priorität vor internen Befehlen gibt, dann bedeutet der Befehl nix anderes wie "rufe die Datei route mit folgenden Parametern auf", im Endeffekt hatte das Script sich die ganze Zeit selbst gestartet und da ich den route Befehl im gleichen Vereichnis ausgeführt hatte, wurde damit ebenfalls wieder die Datei aufgerufen statt der Befehl.


darauf muss man auch erstmal kommen, jetzt mit einer umbenannten Batchdatei klappt es8)


greetz
Poison Nuke

EPIC

#7 Verfasst am 16.06.2010, um 23:12:39



ok, darauf wäre ich jetzt auch nicht gekommen. Meistens bekommen meine Scripte kryptische Namen, da fällt sowas natürlich nicht auf...

powershell-scripts haben meist die Endung .ps1
Du kannst ja mal eins Testweise erstellen, wenn du dann Rechtsklick-->Bearbeiten wählst, kommst du in einen Scripteditor (jedenfalls unter Win7 / Server2008 R2)



 Poison Nuke  *

#8 Verfasst am 16.06.2010, um 23:32:47



gut zu wissen, danke.
Obwohl es nicht per Default gestartet wird bei Doppelklick, sondern da öffnet sich Notepad. Bei Windows 7 muss man per Rechtsklick dann Bearbeiten wählen, dann kommt der PS Editior, nur unter Win2008R2 gibt es nichtmal die Option "bearbeitet" :?

naja gut, dafür gibt es Notepad++, ist eh besser :D




greetz
Poison Nuke

PN's Forum \ Computer \ Software \ Betriebssysteme \ Windows \ Windows 7: Batchscript (*.bat *.cmd) macht nichts


- Zurück zur Homepage - Eigene Beiträge - Neue Beiträge - Wer ist online? - Impressum - Nutzungsbedingungen - Statistiken -



Board coded and provided by: Poison Nuke
Copyright 2007-2014, Robert Menger