Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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 Dateipfad in .bat

Frage Entwicklung Batch & Shell

(Level 1)

27.03.2008, aktualisiert 07.04.2008, 7049 Aufrufe, 6 Kommentare

Hi ist ne ganz kurze sache.
ich habe mir ne kleine *.bat Datei geschrieben, die mir zwei programme öffnet.

call D:\Temp\Helpsoft\Programm1.exe
call D:\Temp\Helpsoft\Programm2.exe

ich möchte mir die Datei jetzt auf einen USB Stick machen, jedoch möchte ich nicht jedesmal den Laufwerksbuchtaben ändern. Ich möchte, das er immer den aktuellen Laufwerkbuchtaben nimmt, kann ja sein, das 2 USB Sticks angeschlossen sind und er dann nicht den richtigen Laufwerkbuchstaben aht, deswegen wäre variabel nicht schlecht.

In excel habe ich sowas schonmal gemacht mit "This.Workbookpath" pder so ähnlich.
gibt es hier diese funktion auch?

Danke schonmal.

Gruß
Mitglied: miniversum
27.03.2008 um 10:36 Uhr
Laufwerk der Batchdatei:
echo %~d0
Laufwerk und Pfad der Batchdatei:
echo %~dp0

Weiteres unter for /? ganz am Ende
Bitte warten ..
Mitglied: bastla
27.03.2008 um 11:13 Uhr
Hallo MichaelS87!

Wenn's nur um den Laufwerksbuchstaben geht, dann:
01.
call %~d0\Temp\Helpsoft\Programm1.exe 
02.
call %~d0\Temp\Helpsoft\Programm2.exe
Grüße
bastla
Bitte warten ..
Mitglied: miniversum
27.03.2008 um 11:55 Uhr
klappt noch nicht so ganz.

er öffnet es zwar, aber das steht da

D:\Temp>call D:\Temp\Tfes.pdf


in der batch selber steht

call %~d0\Temp\Tfes.pdf
Das stimt ja so. Wenn die Batch auf dem Laufwerk D: liegt stellt das %~d0 eben das D: dar.
wenn ich die batch jetzt aber in das selbe verzeichneis wie die Tfes.pdf kopiere und das \Temp weg mache, dann geht es nichtmehr. das sollte es doch oder?
Nein ist klar das es so nicht geht. Schau dir nochmal mein posting oben an.
%~d0 stellt NUR den laufwerksbuchstaben dar indem die Batch liegt. %~dp0 stellt Laufwerksbuchstaben UND verzeichnis dar indem die Batch liegt. Daher werden bei dir wenn du das /temp entfernst die Dateien ncith merh gefunden. wenn du die Batch im gleichen verzeichnis liegen hast ie die andern dateien dann must du also aus deinem
call %~d0\Temp\Tfes.pdf
ein
call %~dp0\Tfes.pdf
machen.
In diesem fall kannst du aber auch eigentlich gleich mit relativen Pfadangaben arbeiten und den aufruf nur so machen:
call Tfes.pdf
Bitte warten ..
Mitglied: bastla
27.03.2008 um 11:59 Uhr
Hallo MichaelS87!

wenn ich die batch jetzt aber in das selbe verzeichneis wie die Tfes.pdf kopiere und das \Temp weg mache, dann geht es nichtmehr. das sollte es doch oder?
Nicht unbedingt - Du erzeugst ja damit dann ein
01.
call D:\Tfes.pdf
Wie miniversum oben schon beschrieben hat, ist der Pfad der Batchdatei unter "%~dp0" zu erreichen - daher müsste es
01.
call %~dp0\Tfes.pdf
heißen.

Falls es auch noch Leerzeichen im Pfad gäbe, zusätzlich Anführungszeichen verwenden:
01.
call "%~dp0\Tfes.pdf"
Grüße
bastla

[Edit] @miniversum: Sorry, hatte nicht gesehen, dass Du wieder da bist .. [/Edit]
Bitte warten ..
Mitglied: miniversum
27.03.2008 um 18:45 Uhr
Also wenn die Batch vorher so funktionierte würde ich sagen das eine Änderung zu
set "Start=w\md01 w\md02 w\md03 w\md04 x\md01"
funktionieren sollte.
Das andere würde ich sicherheitshalber lieber nicht machen, denn sollte die Batch in einem Verzeichnis liegen das ein Leerzeichen enthält würde das zu problemen führen. Die alternative dazu würde dann besser so aussehen:
set "Start=w\md01 w\md02 w\md03 w\md04 x\md01"
und zusätzlich folgende Änderung:
for %%S in (%Start%) do for /f "delims=" %%A in ('dir /b /ad "%~dp0\%%S\%Maske%*.*" 2^>nul') do echo %%~nA$%%~fA >>"%List%"

miniversum
Bitte warten ..
Mitglied: Biber
07.04.2008 um 19:58 Uhr
Moin MichaelS87,

ich habe es so versucht, jedoch ohne erfolg.
set "Start=%~dp0\w\md01 %~dp0\w\md02 %~dp0\w\md03 %~dp0\w\md04 %~dp0\x\md01"
Dann können wirklich nur, wie miniversum schon schrieb, Leerzeichen im %dp0-Pfad der Klemmer sein.

Dann müssen wir etwas dicker auftragen:
set "Start="%~dp0\w\md01" "%~dp0\w\md02" "%~dp0\w\md03" "%~dp0\w\md04" "%~dp0\x\md01""

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateipfad ausgeben (2)

Frage von tegwert zum Thema Batch & Shell ...

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

Frage von abiber zum Thema Batch & Shell ...

Entwicklung
gelöst Hilfe bei .bat script (1)

Frage von RUBEN123 zum Thema Entwicklung ...

VB for Applications
Auswahlliste mit variablen (3)

Frage von 94451 zum Thema VB for Applications ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (36)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...