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

VBS-BAT Datei auswählen

Frage Microsoft Windows Tools

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

12.03.2012, aktualisiert 18.10.2012, 3931 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Sichtbares Ausführen einer BAT-Datei mittels GPOs (10)

Frage von DasWombat1993 zum Thema Windows Server ...

Windows 7
gelöst Bat Datei erstellen für Homeroot (2)

Frage von leon22 zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...