Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Variabler Pfad einer Datei?

Frage Entwicklung Batch & Shell

Mitglied: Worker734

Worker734 (Level 1) - Jetzt verbinden

04.11.2005, aktualisiert 13:43 Uhr, 6979 Aufrufe, 6 Kommentare

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ß
Mitglied: ketchup
04.11.2005 um 09:48 Uhr
du könntest der Batch einen Parameter mitgeben, welcher der Dateiname (inkl. Pfad) ist.

zb: mybatch.bat c:\myfiles\rechner.txt

in mybatch kannst du dann mit %1 bis %9 auf die übergebenen Werte zugreifen.!

jürgen
Bitte warten ..
Mitglied: Biber
04.11.2005 um 10:32 Uhr
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
Bitte warten ..
Mitglied: Worker734
04.11.2005 um 11:07 Uhr
Hi Biber,

zeitgemäßer ist immer gut, hast du einen Beispiellink dafür?

Gruß
Bitte warten ..
Mitglied: Biber
04.11.2005 um 11:35 Uhr
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
Bitte warten ..
Mitglied: Worker734
04.11.2005 um 12:01 Uhr
Hi Biber,

bevor ich mich in VB oder VBA einarbeite habe ich es mit deinem anderen Lösungsweg versucht.
Nur geht es nicht so recht.

echo %userSLogDIR%
zeigt bei mir immer "ECHO OFF" 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?

Danke dir.

--------------------------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%"
set "datei=%usersSLogDIR%\%datei%"

echo %usersSLogDIR%
echo %datei%
pause
goto :eof
)


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
If Errorlevel 1 (
call :pingfailed %1
goto :eof
)
Bitte warten ..
Mitglied: Biber
04.11.2005 um 13:43 Uhr
Nur geht es nicht so recht.
..funk-ti-o-niert nicht so recht *grmffff*


echo %userSLogDIR%
zeigt bei mir immer "ECHO OFF" an
Dann ist die Variable nicht definiert. Und der CMD-Interpreter mach daraus
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?
Hm... eigentlich sollte Ping.exe im %path% sein und überall gefunden werden...
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*
> 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
???????? merkwürdig.... findet er nichts? Oder liegt da vielleicht eine Ping.bat im Weg??
dann halt %windir%\ping.exe ... oder \\serverX\freigabeY\ping.exe

If Errorlevel 1 (
call :pingfailed %1
goto :eof
)
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Linux
E-Mail zu Datei (3)

Frage von schneerunzel zum Thema Linux ...

Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...