Einlesen einer txt Datei

zyclop

Erfahrenes Mitglied
Also folgendes Problem:

Ich habe einen Batch geschrieben der mir eine IP ausgibt und diese in eine txt datei speichert.

ip.txt

nun möchte ich diese Ip durch einen Batch in eine Variebel umwandeln damit ich diese im gleichen Batch verwenden kann.

Code:
type ip.txt|set /p x
shutdown /m \\%x% /a
pause
exit

das ist mein ungültiger Vorschlag...ich brauche hilfe sonst kann ich nicht weiterarbeiten plz plz mfg zyclop
 
Versuch einmal das:
Code:
for /F "tokens=1" %%a in (ip.txt) do set x=%%a

Jetzt hat/sollte die Variable x den Wert der in der ersten Spalte der Textdatei steht (haben)
Hoffentlich hilfts
mfg
 
juhui danke viel mal hat gefunzt ich hab aber immer noch ein Problem

Code:
@echo off
Title 3
for /F "tokens=1" %%a in (../ip.txt) do set x=%%a
echo
cls
set /p Y=Geben sie bitte den Grund ein:
echo.
set /p Z=Geben sie bitte die Zeit von 0- 600 in Sekunden ein:
echo.
shutdown /c %Y% /t %Z% /m \\%X% /s 
exit

bei Variabel =Y=
Ich will nun das wenn er keinen Grund eingibt das Prog neu gestartet wird.

&

bei Variabel =X=
Ich will das wenn er weniger als null eingegeben wird den Batch neugestartet wird
und falls nix eingegeben wird der standartwer 30 angenommen wird

ich habe es versucht jedoch klappt es nicht bei mir
 
Also bei %Y% hast doch eh schon alles odeR?
Und bei:
"bei Variabel =X=
Ich will das wenn er weniger als null eingegeben wird den Batch neugestartet wird
und falls nix eingegeben wird der standartwer 30 angenommen wird"

Meinst du da eh die Variable Z weil X ist doch schon für die IP...
Und sonst würd ich es so lösen:
Code:
set /p Z=Geben sie bitte die Zeit von 0- 600 in Sekunden ein:
if "%Z%"=="" goto start
if "%Z%" lss "0" set Z=30

habs nicht ausprobiert sollte aber funktionieren.
aber du darfst da nicht vergessen eine Sprungmarke(start) irgendwo am anfang hineinzuschreiben!

Ach ich liebe batch einfach ^^

mfg



/EDIT
sry hab das mit Y falsch gelesen:

Code:
if "%Y%" == "" goto start
 
Zuletzt bearbeitet:
Jo hat geklappt danke viel mal so siehts dann aus

Code:
@echo off
Title 3
:start
for /F "tokens=1" %%a in (../../ip.txt) do set x=%%a
echo
cls
set /p Y=Geben sie bitte den Grund ein:
echo.
if "%Y%" == "" goto noreason
set /p Z=Geben sie bitte die Zeit von 0- 600 in Sekunden ein:
if "%Z%"=="" goto standart
echo.
shutdown /c %Y% /t %Z% /m \\%X% /s 
exit

:noreason
ping /a /n 1 >my_ip.txt
pause
for /F "tokens=1" %%B in (my_ip.txt) do set y=%%B
echo Sie haben keinen Grund angegeben darum wird 
echo nun Ihre IP-Adresse als Grund Raporiert
echo.
set /p Z=Geben sie bitte die Zeit von 0- 600 in Sekunden ein:
if "%Z%"=="" goto standart
echo.
shutdown /c %B% /t %Z% /m \\%X% /s 
exit

:standart
set Z=30
echo Sie haben keinen Wert eingetragen aus diesem Grund wird nun der Standartwert 30 Angenommen
shutdown /c %Y% /t %Z% /m \\%X% /s
exit

thx a lot
 
ICh habe jedoch schon das nexte PRoblem dass ich nicht lösen kann

wie kann ich mich selber pingen ohne das ich die IP eingebe
Code:
:noreason
ping /a /n 1 >my_ip.txt
pause
for /F "tokens=1" %%B in (my_ip.txt) do set y=%%B
echo Sie haben keinen Grund angegeben darum wird 
echo nun Ihre IP-Adresse als Grund Raporiert
 
Selberpingen:
Code:
ping localhost

Aber nachdem du ihm ja die ip schicken willst reicht es dann nicht, wenn du nur deinen Computernamen sendest?
Wenn ja könntest du einfach die Umgebungsvariable %LOGONSERVER% als Grund angeben
Hilft dir das weiter?

mfg
 
Zurück