Top-Themen

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

VBS-BAT Datei auswählen

Frage Microsoft Windows Tools

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

12.03.2012, aktualisiert 18.10.2012, 4002 Aufrufe, 8 Kommentare

Guten Abend,

Ich möchte gerne eine Datei auswählen und die Variable nach batch übergeben.
Ja, ich habe folgenden Beitrag gelesen: http://www.administrator.de/frage/vbs-datei-ausw%c3%a4hlen-55751.html

Allerdings habe ich Probleme, die Variable auszulesen (in batch) und in bat zu übergeben. Hier mein Code (abgeändert nach Dani):

01.
@ECHO OFF & SETLOCAL 
02.
>%temp%\msgbox.vbs ECHO 'Datei auswählen 
03.
>>%temp%\msgbox.vbs ECHO Set objOpenDialog = CreateObject("SAFRCFileDlg.FileOpen") 
04.
>>%temp%\msgbox.vbs ECHO intReturn = objOpenDialog.OpenFileOpenDlg 
05.
 
06.
>>%temp%\msgbox.vbs ECHO If intReturn Then 
07.
>>%temp%\msgbox.vbs ECHO     strFilePath = objOpenDialog.FileName 
08.
>>%temp%\msgbox.vbs ECHO Else 
09.
>>%temp%\msgbox.vbs ECHO 	MsgBox("Keine Datei ausgewählt!") 
10.
>>%temp%\msgbox.vbs ECHO     Wscript.Quit 
11.
>>%temp%\msgbox.vbs ECHO End If 
12.
 
13.
 
14.
set "Eingabe=" 
15.
for /f "delims=" %%i in ('cscript //nologo %temp%\msgbox.vbs') do set "Eingabe=%%i" 
16.
 
17.
echo %Eingabe% 
18.
del "%temp%\msgbox.vbs"  
19.
pause
PS: Vielleicht kann jemand mir noch einmal kurz die Variablenübergabe plausibel machen, für die Nachwelt
Danke OKIDOKI
Mitglied: bastla
12.03.2012 um 22:07 Uhr
Hallo OKIDOKI!

Das hatten wir doch heute schon mal ...

Beim Batch kommt das an, was im VBScript per "WScript.Echo" ausgegeben wird - also mach aus Zeile 7
>>%temp%\msgbox.vbs ECHO     WScript.Echo objOpenDialog.FileName
Ansonsten wäre auch ein "if defined Eingabe" noch sinnvoll ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
13.03.2012 um 12:31 Uhr
Hallo bastla,

ja super, danke! "if defined Eingabe" ist natürlich sinnvoll, ansonsten folgt ja schon der nächste Abbruch ...
Wenn ich das so mach, wie du dagst, kann ich dochh die Zeilen 8+9 ebenfalls rausnehmen.

Allerdings, davon aber unabhängig, wird noch die Meldung "Echo ist ausgeschaltet (Off)" angezeigt. Was fehlt nun noch?

01.
@ECHO OFF & SETLOCAL 
02.
>%temp%\msgbox.vbs ECHO 'Datei auswählen 
03.
>>%temp%\msgbox.vbs ECHO Set objOpenDialog = CreateObject("SAFRCFileDlg.FileOpen") 
04.
>>%temp%\msgbox.vbs ECHO intReturn = objOpenDialog.OpenFileOpenDlg 
05.
 
06.
>>%temp%\msgbox.vbs ECHO If intReturn Then 
07.
>>%temp%\msgbox.vbs ECHO     WScript.Echo objOpenDialog.FileName 
08.
>>%temp%\msgbox.vbs ECHO     Wscript.Quit 
09.
>>%temp%\msgbox.vbs ECHO End If 
10.
 
11.
set "Eingabe=" 
12.
for /f "delims=" %%i in ('cscript //nologo %temp%\msgbox.vbs') do set "Eingabe=%%i" 
13.
del "%temp%\msgbox.vbs" 
14.
 
15.
if defined Eingabe (GOTO weiter) else (GOTO :n-weiter) 
16.
 
17.
:weiter 
18.
echo weiter 
19.
pause 
20.
exit 
21.
 
22.
:n-weiter 
23.
echo n-weiter 
24.
pause 
25.
exit
Danke, OKIDOKI
Bitte warten ..
Mitglied: bastla
13.03.2012 um 12:52 Uhr
Hallo OKIDOKI!
Allerdings, davon aber unabhängig, wird noch die Meldung "Echo ist ausgeschaltet (Off)" angezeigt.
Es zwingt Dich ja keiner, mit "echo off" zu testen - daher "echo on" verwenden und schauen, wo der Fehler auftritt ...
Was fehlt nun noch?
ZB \ oder . oder ( oder oder oder ... (aber vermutlich ist eher etwas zuviel) ...
Wenn Du schon Scriptzeilen sparen willst, kannst Du die Zeilen 6 bis 9 durch
>>%temp%\msgbox.vbs ECHO If intReturn Then WScript.Echo objOpenDialog.FileName
ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
13.03.2012 um 13:14 Uhr
Hallo bastla,

funktioniert nun prima!

Der Vollständigkeit halber (und weil es oft in diesem Zusammenhang in verschiedenen Threads auftaucht), was wäre nötig, um mit dieser Prozedur einen Ordner anstatt einer Datei zu wählen? (Im Sinne von "objShell.BrowseForFolder", aber wie?)

01.
@ECHO OFF & SETLOCAL 
02.
>%temp%\msgbox.vbs ECHO 'Datei auswählen 
03.
>>%temp%\msgbox.vbs ECHO Set objOpenDialog = CreateObject("SAFRCFileDlg.FileOpen") 
04.
>>%temp%\msgbox.vbs ECHO intReturn = objOpenDialog.OpenFileOpenDlg 
05.
 
06.
>>%temp%\msgbox.vbs ECHO If intReturn Then WScript.Echo objOpenDialog.FileName 
07.
 
08.
set "Eingabe=" 
09.
for /f "delims=" %%i in ('cscript //nologo %temp%\msgbox.vbs') do set "Eingabe=%%i" 
10.
 
11.
del "%temp%\msgbox.vbs" 
12.
 
13.
if defined Eingabe (GOTO weiter) else (GOTO :n-weiter) 
14.
 
15.
:weiter 
16.
echo weiter %Eingabe% 
17.
pause 
18.
exit 
19.
 
20.
:n-weiter 
21.
echo n-weiter 
22.
pause 
23.
exit
Gruß OKIDOKI
Bitte warten ..
Mitglied: bastla
13.03.2012, aktualisiert 18.10.2012
Hallo OKIDOKI!

Den hast Du nícht gefunden?

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
13.03.2012 um 14:24 Uhr
Hallo bastla,

doch, doch!
Ich dachte nur, dass man o.g. Dialog mit wenigen Änderungen verwenden kann. Dein Verweis funktioniert irgendwie noch nicht, "Start Ordner" findet er nicht und mit "WScript.Echo" hat er auch noch Probleme ...

Doch das wäre eine andere Geschichte
Gruß OKIDOKI
Bitte warten ..
Mitglied: bastla
13.03.2012 um 14:40 Uhr
Hallo OKIDOKI!

Ich würde das zwar heute ein wenig anders schreiben - etwa
01.
AuswahlTitel = "Bitte Verzeichnis auswählen" 
02.
StartOrdner = "17"  'Arbeitsplatz 
03.
Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) 
04.
If Not Dateiauswahl Is Nothing Then WScript.Echo Dateiauswahl.Self.Path
- aber "Start Ordner" käme noch immer nicht darin vor ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
13.03.2012 um 14:50 Uhr
Hallo bastla,

da waren sie wieder meine Probleme :
Es passiert nichts ...
PS: Wie legt man zusätzlich ein Verzeichnis und die Dateiart fest?

01.
@ECHO OFF & SETLOCAL 
02.
 >%temp%\msgbox.vbs ECHO AuswahlTitel = "Bitte Datei oder Verzeichnis auswählen" 
03.
>>%temp%\msgbox.vbs StartOrdner = "17"  'Arbeitsplatz 
04.
>>%temp%\msgbox.vbs Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) 
05.
>>%temp%\msgbox.vbs If Not Dateiauswahl Is Nothing Then WScript.Echo Dateiauswahl.Self.Path 
06.
 
07.
set "Eingabe=" 
08.
for /f "delims=" %%i in ('cscript //nologo %temp%\msgbox.vbs') do set "Eingabe=%%i" 
09.
 
10.
del "%temp%\msgbox.vbs" 
11.
 
12.
if defined Eingabe (GOTO weiter) else (GOTO :n-weiter) 
13.
 
14.
:weiter 
15.
echo weiter %Eingabe% 
16.
pause 
17.
exit 
18.
 
19.
:n-weiter 
20.
echo n-weiter 
21.
pause 
22.
exit
Gruß OKIDOKI
PS2: Mit fertigem Ergebnis dieses Threads hätten wir sowohl Datei-, wie auch Ordnerauswahl in einer Luxusvariante...
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS Datei Auswahl Dialog
gelöst Frage von 133202VB for Applications5 Kommentare

Hallo Ihr, im Thread: konnte ich schon finden, was ich gesucht habe: Jetzt möchte ich allerdings, dass am Anfang ...

Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat
Frage von PiotrneyBatch & Shell4 Kommentare

Hallo, Ich habe mich im Forum umgeschaut ob jemand diese Frage schon gestellt hat. Leider keine der Antworten passen ...

Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Batch & Shell
Bat Datei Auführen
gelöst Frage von talaihanBatch & Shell1 Kommentar

Hallo, wie kann man es erreichen das eine Bat Datei auf einem Lokalen Rechner ohne Internetzugriff und ohne zugehörigkeit ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 StundenSicherheit5 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 4 StundenSicherheit4 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 4 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen19 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...