Variabler Pfad einer Datei?
Ich möchte den Anwender den Pfad der Datei, in diesem Fall SRenamed.log,
abfragen und dem Script übergeben.
Wie kann ich das realisieren?
@echo off
set "root=%SystemDrive%\"
set "datei=%root%SRenamed.log"
set "slogfile=SPing.log"
set "flogfile=FPing.log"
rem *
cls
call :show_header
rem *
echo Computer aus SRenamed.log mit Ping auf Antwort pruefen
echo zum Programm beenden Fenster schliessen.
echo zum fortfahren . . .
echo.
pause
echo.
:: Datei auslesen
echo Datei %Datei% auslesen . . .
echo.
:: Existens von SRenamed.log pruefen
if not exist %datei% (
echo Datei %datei% nicht gefunden!
)
if not exist %datei% goto :end
For /F "tokens=2* " %%i in (%Datei%) do call :ping %%i
goto :eof
Danke und Gruß
abfragen und dem Script übergeben.
Wie kann ich das realisieren?
@echo off
set "root=%SystemDrive%\"
set "datei=%root%SRenamed.log"
set "slogfile=SPing.log"
set "flogfile=FPing.log"
rem *
cls
call :show_header
rem *
echo Computer aus SRenamed.log mit Ping auf Antwort pruefen
echo zum Programm beenden Fenster schliessen.
echo zum fortfahren . . .
echo.
pause
echo.
:: Datei auslesen
echo Datei %Datei% auslesen . . .
echo.
:: Existens von SRenamed.log pruefen
if not exist %datei% (
echo Datei %datei% nicht gefunden!
)
if not exist %datei% goto :end
For /F "tokens=2* " %%i in (%Datei%) do call :ping %%i
goto :eof
Danke und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 18990
Url: https://administrator.de/contentid/18990
Ausgedruckt am: 24.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Moin Worker734,
eine (ausreichende, nicht ästhetische) Möglichkeit der interaktiven Abfrage unter dem CMD-Interpreter:
SET /P Variable=[EingabeaufforderungZeichenfolge]
siehe unter SET /?
Also z.B.
SET /P usersSLogDIR="Geben Sie ein Verzeichnis für..blubb..an, Vorgabe ist %root%: "
IF [%usersSLogDIR%]==[%root%%] set "usersSLogDIR=%root%"
..
Wenn Du es etwas zeitgemäßer haben willst, dann diese Abfrage über ein kleines *.vbs-Skript und in einem Fenster mit runden Ecken. Prinzip ist dasselbe.
HTH Biber
eine (ausreichende, nicht ästhetische) Möglichkeit der interaktiven Abfrage unter dem CMD-Interpreter:
SET /P Variable=[EingabeaufforderungZeichenfolge]
siehe unter SET /?
Also z.B.
SET /P usersSLogDIR="Geben Sie ein Verzeichnis für..blubb..an, Vorgabe ist %root%: "
IF [%usersSLogDIR%]==[%root%%] set "usersSLogDIR=%root%"
..
Wenn Du es etwas zeitgemäßer haben willst, dann diese Abfrage über ein kleines *.vbs-Skript und in einem Fenster mit runden Ecken. Prinzip ist dasselbe.
HTH Biber
Nö, das nicht,
aber wie man/frau eben schnell aus einem Batch heraus ein paar Zeilen *.vbs erzeugt und aufruft, hab ich in meinem Batch-Tut III (in Batch & Shell) skizziert.
Und eine InputBox bekommst Du garantiert hin. Die sind wiederum bestimmt im Bereich "VB, VBS & VBA" oder so ähnlich.
Müsste jedenfalls alles hier im Forum vorhanden sein.
Biber
aber wie man/frau eben schnell aus einem Batch heraus ein paar Zeilen *.vbs erzeugt und aufruft, hab ich in meinem Batch-Tut III (in Batch & Shell) skizziert.
Und eine InputBox bekommst Du garantiert hin. Die sind wiederum bestimmt im Bereich "VB, VBS & VBA" oder so ähnlich.
Müsste jedenfalls alles hier im Forum vorhanden sein.
Biber
Nur geht es nicht so recht.
..funk-ti-o-niert nicht so recht *grmffff*echo %userSLogDIR%
zeigt bei mir immer "ECHO OFF" an
ECHO
..was laut Hilfe die aktuelle ECHO-Einstellung anzeigt.
Undokumentierte Abhilfe: Ein "unerlaubtes Sonderzeichen" (. oder / oder..) direkt hinter ECHO
echo %userSLogDIR% ...zeigt wenigstens keinen Unsinn an.
und komm ich dann mit goto :eof wieder
zurück oder muss ich eine
Sprungmarke z.B. :Dateiauslesen setzen?
Mein Ping Befehl funktioniert auch nur wenn
ich ins Root wechsel,
weißt du woran das liegt?
keine Ahnung, aber zur Not rufe es mit Pfadangabe auf, schlimmstenfalls auf \\server\freigabe bereitstellen.
--------------------------Batchfile------------------------------------------------
@echo off
set "root=%SystemDrive%\"
set "datei=SRenamed.log"
set "rdatei=%root%SRenamed.log"
set "slogfile=SPing.log"
set "flogfile=FPing.log"
echo Computer aus SRenamed.log mit Ping auf Antwort pruefen
echo zum Programm beenden Fenster schliessen.
echo zum fortfahren . . .
echo.
pause
echo.
:: Datei auslesen
echo Datei %rDatei% auslesen . . .
echo.
:: Existens von SRenamed.log pruefen
if not exist %rdatei% (
echo Datei %rdatei% nicht gefunden!
set /p usersSLogDIR="Geben Sie ein Verzeichnis für %datei% an, Vorgabe ist "root%" :"
IF [%usersSLogDIR%]==[%root%] set "usersSLogDIR=%root%"
Sooooooooorry, mein Fehler!!! *schämschämschäm*@echo off
set "root=%SystemDrive%\"
set "datei=SRenamed.log"
set "rdatei=%root%SRenamed.log"
set "slogfile=SPing.log"
set "flogfile=FPing.log"
echo Computer aus SRenamed.log mit Ping auf Antwort pruefen
echo zum Programm beenden Fenster schliessen.
echo zum fortfahren . . .
echo.
pause
echo.
:: Datei auslesen
echo Datei %rDatei% auslesen . . .
echo.
:: Existens von SRenamed.log pruefen
if not exist %rdatei% (
echo Datei %rdatei% nicht gefunden!
set /p usersSLogDIR="Geben Sie ein Verzeichnis für %datei% an, Vorgabe ist "root%" :"
IF [%usersSLogDIR%]==[%root%] set "usersSLogDIR=%root%"
> IF [%usersSLogDIR%]== set "usersSLogDIR=%root%"
rem if not exist %rdatei% goto :end
For /F "tokens=2* " %%i in (%rdatei%) do call :ping %%i
goto :eof
:ping
:: Warten auf Antwort
echo ping Computer "%1" ...
:: ins Root wechseln da sonst kein ping funktioniert!!
cd\
C:
ping %1
dann halt %windir%\ping.exe ... oder \\serverX\freigabeY\ping.exe
If Errorlevel 1 (
call :pingfailed %1
goto :eof
)
call :pingfailed %1
goto :eof
)