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
GELÖST

Probleme bei drag und drop und Programmaufruf

Frage Entwicklung Batch & Shell

Mitglied: Kongootto

Kongootto (Level 1) - Jetzt verbinden

08.03.2011 um 16:25 Uhr, 3983 Aufrufe, 7 Kommentare

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

01.
@echo off & setlocal 
02.
 
03.
set var0=%1 
04.
set var1=%var0:~7,24% 
05.
set var2=VAK0300%var1% 
06.
 
07.
 
08.
javaw.exe -jar vaksh.jar i% %var2% 
09.
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
Mitglied: bastla
08.03.2011 um 17:32 Uhr
Hallo Kongootto und willkommen im Forum!
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:
01.
@echo off & setlocal 
02.
pushd D:\Test 
03.
 
04.
set var0=%1 
05.
set var1=%var0:~7,24% 
06.
set var2=VAK0300%var1% 
07.
 
08.
 
09.
javaw.exe -jar vaksh.jar i% %var2% 
10.
popd 
11.
pause
BTW: Eigentlich sollte auch
javaw.exe -jar vaksh.jar i% VAK0300%var0:~7%
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
for /f "tokens=1* delims=_") %%i in ("%~1") do set "var2=VAK0300_%%i"
durch die Unterteiilung am ersten vorkommenden "_" der sicherere Weg ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
08.03.2011 um 17:53 Uhr
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
Bitte warten ..
Mitglied: bastla
08.03.2011 um 18:01 Uhr
Hallo Dieter!

Natü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 ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
08.03.2011 um 18:15 Uhr
Hallo bastla!

Zitat von bastla:
Natürlich ließe sich bei der "Übernahme" in die Variable %var0% auch die Reduktion auf den Dateinamen
einfach durchführen:
set "var0=%~nx1"
Auch ne Möglichkeit
- allerdings beruht das Thema "Zerlegung" ja bisher nur auf einer Mutmaßung meinerseits ...
Da habe ich wohl gleich gemutmaßt

Gruß Dieter
Bitte warten ..
Mitglied: Kongootto
09.03.2011 um 16:16 Uhr
Hallo,

vielen Dank für die Hilfe; jetzt klappt es!
Falls es wen interessiert; so funktionert es.

<echo>
@echo off & setlocal

set var1=%~nx1
set var_tmp=%var1:~7,24%
set var2=VAK0300%var_tmp%

cd /D %~dp0

javaw.exe -jar vaksh.jar %var1% %var2% test
pause
</echo>

Das mit der Schleife hat leider nicht geklappt, aber evtl habe ich da auch einen Fehler gemacht.

Viele Grüße
Kongootto
Bitte warten ..
Mitglied: bastla
09.03.2011 um 16:24 Uhr
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
cd /D "%~dp0"
verwenden.
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
Bitte warten ..
Mitglied: Kongootto
14.03.2011 um 12:04 Uhr
Hallo nochmal,

habe das cd /D "%~dp0" jetzt umgesetzt.

Vielen Dank nochmal.

Gruß
Kongootto
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(5)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Drag and Drop in Powershell (2)

Frage von mc-doubleyou zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop? (4)

Frage von Geforce zum Thema Microsoft Office ...

Outlook & Mail
Outlook 2013 Drag and Drop geht nicht (1)

Frage von Mungo-S zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...