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, 6998 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 ..
Ähnliche Inhalte
Batch & Shell
Datei mit Variablem namen in Variablem Verzeichnis umbenennen (6)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

VB for Applications
gelöst Abfrage, ob Datei mit Variablem Wert existiert (12)

Frage von Anrion zum Thema VB for Applications ...

Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (59)

Frage von pjrtvly zum Thema Internet ...

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...

Windows Server
Benutzer sperrt sich immer wieder im Active Directory Contoller (18)

Frage von Kirdy1301 zum Thema Windows Server ...