Probleme bei drag und drop und Programmaufruf
Hallo Admins,
ich habe ein kleine Problem mit einem Batch Skript:
ich zeihe per drop und drag eine .csv Datei auf ein Batch Skript, welches dann wiederum ein Java Programm mit der .csv Datei und weiteren Datei (zusammengesetzt aus der ersten .csv Datei) als Parameter startet. Hier der Quellcode
Am Anfang wird der zweite Parameter (var2) aus der übergebenen .csv Datei konstruiert; danach wird das Java Programm mit beiden Parametern gestartet. Wenn ich nun in der Eingabeaufforderung der Skript mit test.bat VAK0200_201102151566.csv startet funktioniert auch alles.
Wenn ich allerdings im Explorer die .csv Datei VAK0200_201102151566.csv auf die test.bat "ziehe" passiert nichts. Ich habe mir schon mit echo %CD% den aktuellen Pfad angeben lassen. Dort steht dann C:\Dokumente und Einstellungen\Benutzername. Das Skript liegt allerdings unter D:\Test. Ich habe leider keine Ahnung wie ich das Skript dazu kriegen kann, dass es bei "drag&drop" die .bat Datei mit den Parametern unter D:\Test startet.
Ich hoffe jemand von euch hat eine Idee.
Gruß & Danke
Kongootto
ich habe ein kleine Problem mit einem Batch Skript:
ich zeihe per drop und drag eine .csv Datei auf ein Batch Skript, welches dann wiederum ein Java Programm mit der .csv Datei und weiteren Datei (zusammengesetzt aus der ersten .csv Datei) als Parameter startet. Hier der Quellcode
@echo off & setlocal
set var0=%1
set var1=%var0:~7,24%
set var2=VAK0300%var1%
javaw.exe -jar vaksh.jar i% %var2%
pause
Am Anfang wird der zweite Parameter (var2) aus der übergebenen .csv Datei konstruiert; danach wird das Java Programm mit beiden Parametern gestartet. Wenn ich nun in der Eingabeaufforderung der Skript mit test.bat VAK0200_201102151566.csv startet funktioniert auch alles.
Wenn ich allerdings im Explorer die .csv Datei VAK0200_201102151566.csv auf die test.bat "ziehe" passiert nichts. Ich habe mir schon mit echo %CD% den aktuellen Pfad angeben lassen. Dort steht dann C:\Dokumente und Einstellungen\Benutzername. Das Skript liegt allerdings unter D:\Test. Ich habe leider keine Ahnung wie ich das Skript dazu kriegen kann, dass es bei "drag&drop" die .bat Datei mit den Parametern unter D:\Test startet.
Ich hoffe jemand von euch hat eine Idee.
Gruß & Danke
Kongootto
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162248
Url: https://administrator.de/forum/probleme-bei-drag-und-drop-und-programmaufruf-162248.html
Ausgedruckt am: 05.05.2025 um 10:05 Uhr
7 Kommentare
Neuester Kommentar
Hallo Kongootto und willkommen im Forum!
BTW: Eigentlich sollte auch
ganz ohne %var1% und %var2% genügen (wobei ich mich allerdings noch frage, was es mit "i%" auf sich hat) ...
Noch eine Überlegung: Um aus "VAK0200_201102151566.csv" nur den Teil "_201102151566.csv" mit "VAK0300" zu kombinieren, wäre mE
durch die Unterteiilung am ersten vorkommenden "_" der sicherere Weg ...
Grüße
bastla
Ich habe leider keine Ahnung wie ich das Skript dazu kriegen kann, dass es bei "drag&drop" die .bat Datei mit den Parametern unter D:\Test startet.
Eigentlich würde ich ja den jeweiligen Elementen den benötigten Pfad voranstellen und sie damit vom Startort des Batches unabhängig machen, aber um Deine konkrete Frage zu beantworten:@echo off & setlocal
pushd D:\Test
set var0=%1
set var1=%var0:~7,24%
set var2=VAK0300%var1%
javaw.exe -jar vaksh.jar i% %var2%
popd
pause
javaw.exe -jar vaksh.jar i% VAK0300%var0:~7%
Noch eine Überlegung: Um aus "VAK0200_201102151566.csv" nur den Teil "_201102151566.csv" mit "VAK0300" zu kombinieren, wäre mE
for /f "tokens=1* delims=_") %%i in ("%~1") do set "var2=VAK0300_%%i"
Grüße
bastla

Hallo Kongootto!
Anzumerken wäre aber noch, dass bei Drag&Drop der komplette Pfad der *.csv-Datei übergeben wird.
Von daher wäre bastlas letzte Variante zu empfehlen.
Gruß Dieter
Anzumerken wäre aber noch, dass bei Drag&Drop der komplette Pfad der *.csv-Datei übergeben wird.
Von daher wäre bastlas letzte Variante zu empfehlen.
Gruß Dieter

Hallo bastla!


Gruß Dieter
Zitat von @bastla:
Natürlich ließe sich bei der "Übernahme" in die Variable %var0% auch die Reduktion auf den Dateinamen
einfach durchführen:
Auch ne MöglichkeitNatürlich ließe sich bei der "Übernahme" in die Variable %var0% auch die Reduktion auf den Dateinamen
einfach durchführen:
set "var0=%~nx1"
- allerdings beruht das Thema "Zerlegung" ja bisher nur auf einer Mutmaßung meinerseits ...
Da habe ich wohl gleich gemutmaßtGruß Dieter
Hallo Kongootto!
Wenn Du in "<echo>" ersatzweise das Codewort "code" verwendest, wird die Darstellung etwas angenehmer ...
Zur Sicherheit (für den Fall, dass die Batchdatei einmal in einem Ordner, dessen Pfad mindestens ein Leerzeichen enthält, zu liegen kommt) solltest Du
verwenden.
Grüße
bastla
Wenn Du in "<echo>" ersatzweise das Codewort "code" verwendest, wird die Darstellung etwas angenehmer ...
Zur Sicherheit (für den Fall, dass die Batchdatei einmal in einem Ordner, dessen Pfad mindestens ein Leerzeichen enthält, zu liegen kommt) solltest Du
cd /D "%~dp0"
Das mit der Schleife hat leider nicht geklappt, aber evtl habe ich da auch einen Fehler gemacht.
Das kannst Du leicht nachvollziehen, indem Du das "echo off
" vorübergehend in ein "echo on
" änderst - so werden alle Befehle vorweg angezeigt ...Grüße
bastla