Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Baumstrukturmodus | Linearer Modus
Probleme/Fragen Batches - ein prozess hat versucht zu einer nicht bestehenden pipe zu schreiben
26-09-2007, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: 01-10-2007 13:08 von admin32.)
Beitrag: #1
Probleme/Fragen Batches - ein prozess hat versucht zu einer nicht bestehenden pipe zu schreiben
Hi, ich habe folgendes Problem.

in dem nachfolgendem Testprogramm ist es notwendig die verzögerten Umgebungsvariablen zu aktivieren. Dies ist möglich mittels dem Befehl "cmd /v:on". Beim ausführen dieser test.bat möchte ich also mitteilen: "Führe mir das Programm in einer mit verzögerten Umgebungsvariablen geöffneten Befehlszeile aus"
Wie mache ich das?
Ich möchte kein zweites Programm haben welches den cmd /v:on Befehl enthält und das Programm test.bat aufruft.
Außerdem möchte ich das Problem nicht umgehen indem ich einen weiteren call aufrufe.

Rem ***********************************************
echo on
set syncminuten=10
call :1
goto :eof

:1
set /a syncminuten=%syncminuten%+1
If "11" EQU "!syncminuten!" (echo es funktioniert)
pause
goto :eof
Rem ***********************************************

Des weiteren habe ich noch zwei Fragen.
1. Wie zähle ich Zeilen in Batch?
2. Warum kommt bei folgendem Befehl auf der Commandozeile bei jeder weiteren Eingabe immer diese Meldung?

C:\cmd | echo test
test
Ein Prozess hat versucht, zu einer nicht bestehenden Pipe zu schreiben.
Ein Prozess hat versucht, zu einer nicht bestehenden Pipe zu schreiben.

--> Erst mittels Exit komme ich wieder "ans freie"
--> Habe mal weiter getestet und mittels && macht er das was er soll

Ich bedanke mich für alle Hilfen und jeden Denkanstoß!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27-09-2007, 08:56
Beitrag: #2
Probleme/Fragen Batches - ein prozess hat versucht zu einer nicht bestehenden pipe zu schreiben
Sorry habe festgestellt, dass mein Beispiel "falsch-richtig" ist. Also das genannte Problem besteht weiterhin, aber nicht in oben genannten Beispiel. Suche noch was passendes, solange experimentiere ich mit dem unter set /? genannten Beispiel.

Habe gedacht ich könnte vielleicht so

echo If "11" EQU "!syncminuten!" (echo es funktioniert) | cmd /v:on

das Problem lösen. Ist aber ein Trugschluss, denn das Problem taucht ja nur dann auf, wenn man in einer Schleife eine Variable verändert und mit dieser weiter arbeitet. Meherere Befehle lassen sich aber nicht an die neue Befehlszeile übergeben. Oder ich habe noch nicht rausgefunden wie das funktioniert.

Werde mal munter weiter testen ^^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27-09-2007, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 01-10-2007 13:06 von admin32.)
Beitrag: #3
Probleme/Fragen Batches - ein prozess hat versucht zu einer nicht bestehenden pipe zu schreiben
rem ********************************
if "%wcode%" EQU "1" goto :Sprungmarke1

set wcode=1
cmd /v:on /c schnauze_voll.bat

goto :eof


:Sprungmarke1

set VAR=vorher
if "%VAR%" == "vorher" (
set VAR=nachher
if "!VAR!" == "nachher" ( @echo Es funktioniert! > schnauze_voll.txt )
)

echo %VAR%
set wcode=0
pause
rem ********************************

So sieht es aus Leute!!!
Der Trick ist, dass sich das Programm nochmals selbst aufruft nur in einer anderen Befehlszeile. Damit keine Endlosschleife entsteht wird eine Variable gesetzt die, wenn sie wahr ist, auf eine Sprungmarke führt (If-Befehl am Anfang).
Achtet bei der "Pause" darauf, dass sich die cmd schließt (zu sehen oben im blauen Balken)

Jetzt tüftele ich noch daran, wie ich wcode wieder auf 0 bekomme. Mir ist nämlich gerade aufgefallen, dass sich der wcode=0 ins nicht auflöst, nachdem die cmd sich schließt (ist ja auch logisch, da diese temporär ist und nur für die geöffnete cmd gilt).

Natürlich spielt dies nur eine Rolle, wenn man die Batch aus einer Eingabeaufforderung heraus startet und nicht über doppelklick (hier schließt sich die Befehlszeile ja direkt wieder)

So jetzt hätte ich aber noch gerne Antworten auf die anderen Fragen...

ACHTUNG: Habe festgestellt, dass es verzögerte Erweiterungen unter NT nicht gibt. D.h. dort muss man sich anders behelfen (bleibt wohl nur die Möglichkeit des call-Befehls)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Tags
ein prozess hat versucht zu einer nicht bestehenden pipe zu schreiben, ein prozess hat versucht, zu einer nicht bestehenden pipe zu schreiben., &esrc=s&sa=u&ei=oq9fvctqc6adygpfqoc4da&ved=0cdiqfjaf&usg=afqjcngcnbyeptisxicsfza4pewavhye9a, ein+prozess+hat+versucht+zu+einer+nicht+bestehenden+pipe+zu+schreiben, ein prozess versucht, zu einer nicht bestehenden pipe zu schreiben, ein prozess hat versucht, zu einer nicht bestehenden pipe zu schreiben, &esrc=s&sa=u&ei=cgsivmb9kqbnyqpfzilgag&ved=0cdaqfjae&usg=afqjcnghndhpy02q2jdsrxehhqxlbm4saa, bat if then, bat passwort nicht in klartext, bat if then, bat passwort nicht in klartext, bat if then, batch datei pfadangabe, batch pfad der datei, bat passwort nicht in klartext, sites
« Ein Thema zurück | Ein Thema vor »
Antwort schreiben 


  • Druckversion anzeigen
  • Thema einem Freund senden
  • Thema abonnieren
Gehe zu:




Kontakt | Windows Forum | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation| Impressum