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 Datei Auswahl Dialog

Mitglied: 133202

133202 (Level 1)

05.05.2017 um 15:26 Uhr, 2594 Aufrufe, 12 Kommentare

Hallo Ihr,

im Thread: https://www.administrator.de/forum/vb-skript-mehrere-batch-befehle-33547 ... konnte ich schon finden,
was ich gesucht habe:

01.
Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")
02.
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
03.
'temporäre Batch-Datei erzeugen
04.
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\" & FSO.GetTempName & ".cmd"
05.
With FSO.CreateTextFile(Batch1, True)
06.
  .WriteLine "@ECHO off"
07.
  .WriteLine "SETLOCAL enabledelayedexpansion"
08.
  .WriteLine "SET quelle=%userprofile%\Desktop\Temp\csv-sicherung-%Date%.csv"
09.
  .WriteLine .......
10.
  .Close
11.
End With
12.
'temporäre Batch-Datei ausführen, auf Ende warten
13.
WshShell.Run Batch1, 0, True
14.
'temporäre Batch-Datei löschen
15.
FSO.DeleteFile Batch1, True
Jetzt möchte ich allerdings, dass am Anfang über eine Messagebox eine Abfrage stattfindet, dass ich die Quelldatei in den Temp Ordner laden möchte
und das Skript oben dann durchlaufen soll. Das soll so im Stil "Datei öffnen" passieren?

Kann mir jemand helfen?

BG

Compu2017
Mitglied: 132895
05.05.2017, aktualisiert um 16:34 Uhr
01.
Set objShell = CreateObject("Shell.Application")
02.
Set objFolder = objShell.BrowseForFolder(0,"Ordner wählen",0)
03.
If Not objFolder Is Nothing Then
04.
	If objFolder.Self.Path <> "" Then
05.
		MsgBox objFolder.Self.Path
06.
	End If
07.
End If
oder auc:
01.
Set objShell = CreateObject("Wscript.Shell")
02.
Set oExec = objShell.Exec("powershell -Ex ByPass -Win Hidden -C ""Add-Type -AssemblyName System.Windows.Forms;$dlg = New-Object System.Windows.Forms.OpenFileDialog;$dlg.Multiselect = $false;if($dlg.ShowDialog() -eq 'OK'){return $dlg.FileName}""")
03.
Do While oExec.Status = 0
04.
     WScript.Sleep 100
05.
Loop
06.
result = ""
07.
Do While Not oExec.StdOut.AtEndOfStream
08.
   result = result & oExec.StdOut.ReadAll
09.
Loop
10.
MsgBox result
Gruß
Bitte warten ..
Mitglied: 133202
05.05.2017 um 16:52 Uhr
Super, vielen Dank für die Tipps; für mich würde das von http://www.robvanderwoude.com/vbstech_ui_fileopen.php reichen:

01.
Option Explicit
02.

03.
Dim strFile
04.

05.
strFile = SelectFile( )
06.

07.
If strFile = "" Then 
08.
'    WScript.Echo "No file selected."
09.
Else
10.
    WScript.Echo """" & strFile & """"
11.
End If
12.

13.

14.
Function SelectFile( )
15.
   
16.
    Dim objExec, strMSHTA, wshShell
17.

18.
    SelectFile = ""
19.

20.

21.
    strMSHTA = "mshta.exe ""about:" & "<" & "input type=file id=FILE>" _
22.
             & "<" & "script>FILE.click();new ActiveXObject('Scripting.FileSystemObject')" _
23.
             & ".GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);" & "<" & "/script>"""
24.

25.

26.
    Set wshShell = CreateObject( "WScript.Shell" )
27.
    Set objExec = wshShell.Exec( strMSHTA )
28.

29.
    SelectFile = objExec.StdOut.ReadLine( )
30.

31.
    Set objExec = Nothing
32.
    Set wshShell = Nothing
33.
End Function
Beim Ausführen des Befehls steht dann "Datei zum Hochladen auswählen" da. Mit welchem Befehl kann ich den Text ändern und wie kann ich es am besten auf .csv Dateien begrenzen?

Beim Auswählen einer Datei gibt er mir ja Echo zurück wie die Datei heißt; hier möchte ich aber gerne dass die Datei in ein Verzeichnis kopiert wird.
und dann habe ich noch das Problem, dass nachdem die Datei in das Verzeichnis kopiert wurde, dass dann das Skript ausgeführt werden soll:

01.
Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")
02.
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
03.
'temporäre Batch-Datei erzeugen
04.
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\" & FSO.GetTempName & ".cmd"
05.
With FSO.CreateTextFile(Batch1, True)
06.
  .WriteLine "@ECHO off"
07.
  .WriteLine "SETLOCAL enabledelayedexpansion"
08.
  .WriteLine "SET quelle=%userprofile%\Desktop\Temp\csv-sicherung-%Date%.csv"
09.
  .WriteLine .......
10.
  .Close
11.
End With
12.
'temporäre Batch-Datei ausführen, auf Ende warten
13.
WshShell.Run Batch1, 0, True
14.
'temporäre Batch-Datei löschen
15.
FSO.DeleteFile Batch1, True
Vielen lieben Dank für die Tipps.
Bitte warten ..
Mitglied: 133202
06.05.2017 um 22:14 Uhr
Jemand eine Idee?
Bitte warten ..
Mitglied: rubberman
06.05.2017, aktualisiert 09.09.2019
01.
Option Explicit
02.

03.
Dim destination, dir, filters, title, file, _
04.
    objFileDlg, objWshShell, objFSO
05.

06.
Set objWshShell = CreateObject("WScript.Shell")
07.

08.
destination = objWshShell.ExpandEnvironmentStrings("%userprofile%") & _
09.
              "\Desktop\Test\csv-sicherung-" & _
10.
              FormatDateTime(date(), vbShortDate) & ".csv" ' Zieldatei
11.

12.
dir = objWshShell.CurrentDirectory ' Startverzeichnis des Dialogs (beispielhaft das Arbeitsverzeichnis des Scripts)
13.
filters = Array("CSV-Dateien", "*.csv") ' Dateifilter
14.
title = "Auswahl" ' Titel des Dialogs
15.

16.
Set objFileDlg = New FileDlg ' Instanz der Dialogklasse erzeugen
17.

18.
If objFileDlg.GetPath(dir, filters, title, file) = False Then ' Dialog aufrufen und prüfen, ob eine Datei ausgewählt wurde
19.
  MsgBox "Keine Datei ausgewählt.", vbCritical Or vbSystemModal, "Fehler:"
20.
  WScript.Quit
21.
End If
22.

23.
Set objFileDlg = Nothing ' Instanz zerstören um den mshta.exe Prozess im Hintergund zu beenden
24.

25.

26.
Set objFSO = CreateObject("Scripting.FileSystemObject")
27.
objFSO.CopyFile file, destination, True ' ausgewählte Datei kopieren
28.

29.

30.
'temporäre Batch-Datei erzeugen
31.
Dim Batch1 : Batch1 = objWshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\" & objFSO.GetTempName & ".cmd"
32.
With objFSO.CreateTextFile(Batch1, True)
33.
  .WriteLine "@ECHO off"
34.
  .WriteLine "SETLOCAL enabledelayedexpansion"
35.
  .WriteLine "SET quelle=%userprofile%\Desktop\Temp\csv-sicherung-%Date%.csv"
36.
  .WriteLine ":: ......."
37.
  .Close
38.
End With
39.
'temporäre Batch-Datei ausführen, auf Ende warten
40.
objWshShell.Run Batch1, 0, True
41.
'temporäre Batch-Datei löschen
42.
objFSO.DeleteFile Batch1, True
43.

44.

45.

46.
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FileDlg Klasse ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47.

48.
Class FileDlg
49.

50.
  Private objFSO, objHTAWnd, bOK
51.

52.
  Public Function GetPath(ByRef strStartDir_in, ByVal arrFilters_in, ByRef strTitle_in, ByRef strFilePath_out)
53.
    Dim i
54.
    GetPath = False
55.
    strFilePath_out = ""
56.
    If Not bOK Then Exit Function
57.
    On Error Resume Next
58.
    For i = 0 To UBound(arrFilters_in) Step 2
59.
      arrFilters_in(i) = arrFilters_in(i) & " (" & Join(Split(arrFilters_in(i + 1), ";"), ", ") & ")"
60.
    Next
61.
    strFilePath_out = objHTAWnd.HtmlDlgHelper.object.openfiledlg(CStr(objFSO.BuildPath(strStartDir_in, ">")), , _
62.
      CStr(Join(arrFilters_in, "|") & "|"), CStr(strTitle_in))
63.
    On Error Goto 0
64.
    If InStr(strFilePath_out, vbNullChar) Then strFilePath_out = Left(strFilePath_out, InStr(strFilePath_out, vbNullChar) - 1)
65.
    If objFSO.FileExists(strFilePath_out) Then GetPath = True
66.
  End Function
67.

68.
  Private Sub Class_Initialize()
69.
    Dim objShellApp, objWSHShell, objTypeLib, objShellWnd, strGuid, i
70.
    Set objShellApp = CreateObject("Shell.Application")
71.
    Set objWSHShell = CreateObject("WScript.Shell")
72.
    Set objTypeLib = CreateObject("Scriptlet.TypeLib")
73.
    Set objFSO = CreateObject("Scripting.FileSystemObject")
74.
    bOK = False
75.
    strGuid = Left(objTypeLib.Guid, 38)
76.
    Set objTypeLib = Nothing
77.
    objWSHShell.Run "mshta.exe ""javascript:new ActiveXObject('InternetExplorer.Application').PutProperty('" _
78.
      & strGuid & "', window);""", 0
79.
    Set objWSHShell = Nothing
80.
    i = 0
81.
    On Error Resume Next
82.
    Do
83.
      WScript.Sleep 100
84.
      For Each objShellWnd In objShellApp.Windows
85.
        If IsObject(objShellWnd.GetProperty(strGuid)) Then
86.
          Set objHTAWnd = objShellWnd.GetProperty(strGuid)
87.
          If TypeName(objHTAWnd) = "HTMLWindow2" Then
88.
            bOK = True
89.
            objShellWnd.Quit
90.
            Exit Do
91.
          Else
92.
            Set objHTAWnd = Nothing
93.
          End If
94.
        End If
95.
      Next
96.
      i = i + 1
97.
    Loop While i < 600
98.
    Set objShellWnd = Nothing
99.
    Set objShellApp = Nothing
100.
    If bOK Then objHTAWnd.document.body.innerHTML = _
101.
      "<object id=""HtmlDlgHelper"" classid=""CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b""></object>"
102.
    On Error Goto 0
103.
  End Sub
104.

105.
  Private Sub Class_Terminate()
106.
    If bOK Then objHTAWnd.close
107.
    Set objHTAWnd = Nothing
108.
    Set objFSO = Nothing
109.
  End Sub
110.

111.
End Class
Viel Spaß

Grüße
rubberman

* EDIT 09.09.2019: *
Wie unten zu lesen, funktioniert das so nicht mehr mit aktuellen Versionen von Win10. Wer also über diesen alten Thread stolpert, hier funktionierende Klassen für VBS und JS
https://www.coding-board.de/resources/wsh-file-dialog-klassen-fuer-vbscr ...
Bitte warten ..
Mitglied: freshman2017
21.06.2019 um 16:36 Uhr
Guten Tag liebe Gemeinde,

ich wollte etwas üben, bekomme aber immer wieder eine Fehlermeldung, dass die .vbs Datei nicht ausgeführt werden kann. Kann mir jemand sagen, woran es liegt?

01.

02.
Dim WshShell  : set WshShell = CreateObject("Wscript.Shell")
03.
Dim FSO : set FSO = CreateObject("Scripting.FileSystemObject")
04.

05.
'	temporäre Batch-Datein erzeugen
06.
Dim prog1 : prog1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & FSO.GetTempName & ".vbs"
07.
Dim prog2 : prog2 = WshShell.ExpandEnvironmentStrings("%userprofile%") & FSO.GetTempName & ".vbs"
08.

09.
'	Verzeichnis erstellen, wenn nicht vorhanden \TEST
10.
With FSO.CreateTextFile(prog1, True)
11.
  .WriteLine "set objShell = CreateObject(""Wscript.Shell"")"
12.
  .WriteLine "set fso = CreateObject(""Scripting.Filesystemobject"")"
13.
  .WriteLine "ziel = objShell.ExpandEnvironmentStrings(""%userprofile%"") & ""\TEST"""
14.
  .WriteLine "If Not fso.FolderExists(ziel) Then "
15.
  .WriteLine "	fso.CreateFolder ziel"
16.
  .WriteLine "End if"
17.
  .WriteLine "ziel = objShell.ExpandEnvironmentStrings(""%userprofile%"") & ""\TEST\Temp"""
18.
  .WriteLine "If Not fso.FolderExists(ziel) Then "
19.
  .WriteLine "	fso.CreateFolder ziel"
20.
  .WriteLine "End if"
21.
  .Close
22.
End With
23.

24.
'	.csv - Datei in das Arbeitsverzeichnis hochladen - \TEST
25.
With FSO.CreateTextFile(prog2, True)
26.
  .WriteLine "Dim destination, dir, filters, title, file, _"
27.
  .WriteLine "    objFileDlg, objWshShell, objFSO"
28.
  .WriteLine "set objWshShell = CreateObject(""WScript.Shell"")"
29.
  .WriteLine ""
30.
  .WriteLine ""
31.
  .WriteLine "destination = objWshShell.ExpandEnvironmentStrings(""%userprofile%"") & _"
32.
  .WriteLine "              ""\TEST\TEST-buchungsbeleg-export.txt""" ' Zieldatei"
33.
  .WriteLine ""
34.
  .WriteLine "dir = objWshShell.CurrentDirectory ' Startverzeichnis des Dialogs"
35.
  .WriteLine "filters = Array(""TXT-Dateien"", ""*.txt"") ' Dateifilter"
36.
  .WriteLine "title = ""TEST"" ' Titel des Dialogs"
37.
  .WriteLine ""
38.
  .WriteLine "set objFileDlg = New FileDlg ' Instanz der Dialogklasse erzeugen"
39.
  .WriteLine ""
40.
  .WriteLine "If objFileDlg.GetPath(dir, filters, title, file) = False Then ' Dialog aufrufen und prüfen, ob eine Datei ausgewählt wurde"
41.
  .WriteLine "  MsgBox ""Keine Datei ausgewaehlt."", vbCritical Or vbSystemModal, ""TEST"""
42.
  .WriteLine "  WScript.Quit"
43.
  .WriteLine "End If"
44.
  .WriteLine ""
45.
  .WriteLine "set objFileDlg = Nothing ' Instanz zerstören um den mshta.exe Prozess im Hintergund zu beenden"
46.
  .WriteLine ""
47.
  .WriteLine ""
48.
  .WriteLine "set objFSO = CreateObject(""Scripting.FileSystemObject"")"
49.
  .WriteLine "objFSO.CopyFile file, destination, True ' ausgewählte Datei kopieren"
50.
  .WriteLine ""
51.
  .WriteLine "'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FileDlg Klasse ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
52.
  .WriteLine ""
53.
  .WriteLine "Class FileDlg"
54.
  .WriteLine ""
55.
  .WriteLine "  Private objFSO, objHTAWnd, bOK"
56.
  .WriteLine ""
57.
  .WriteLine "  Public Function GetPath(ByRef strStartDir_in, ByVal arrFilters_in, ByRef strTitle_in, ByRef strFilePath_out)"
58.
  .WriteLine "    Dim i"
59.
  .WriteLine "    GetPath = False"
60.
  .WriteLine "        strFilePath_out = """""
61.
  .WriteLine "    If Not bOK Then Exit Function"
62.
  .WriteLine "    On Error Resume Next"
63.
  .WriteLine "    For i = 0 To UBound(arrFilters_in) Step 2"
64.
  .WriteLine "      arrFilters_in(i) = arrFilters_in(i) & "" ("" & Join(Split(arrFilters_in(i + 1), "";""), "", "") & "")"""
65.
  .WriteLine "    Next"
66.
  .WriteLine "strFilePath_out = objHTAWnd.HtmlDlgHelper.object.openfiledlg(CStr(objFSO.BuildPath(strStartDir_in, "">"")), , _"
67.
  .WriteLine "      CStr(Join(arrFilters_in, ""|"") & ""|""), CStr(strTitle_in))"
68.
  .WriteLine "    On Error Goto 0"
69.
  .WriteLine "If InStr(strFilePath_out, vbNullChar) Then strFilePath_out = Left(strFilePath_out, InStr(strFilePath_out, vbNullChar) - 1)"
70.
  .WriteLine "    If objFSO.FileExists(strFilePath_out) Then GetPath = True"
71.
  .WriteLine "  End Function"
72.
  .WriteLine ""
73.
  .WriteLine "  Private Sub Class_Initialize()"
74.
  .WriteLine ""
75.
  .WriteLine "    Dim objShellApp, objWSHShell, objTypeLib, objShellWnd, strGuid, i"
76.
  .WriteLine "    set objShellApp = CreateObject(""Shell.Application"")"
77.
  .WriteLine "    set objWSHShell = CreateObject(""WScript.Shell"")"
78.
  .WriteLine "    set objTypeLib = CreateObject(""Scriptlet.TypeLib"")"
79.
  .WriteLine "    set objFSO = CreateObject(""Scripting.FileSystemObject"")"
80.
  .WriteLine "    bOK = False"
81.
  .WriteLine "    strGuid = Left(objTypeLib.Guid, 38)"
82.
  .WriteLine "    set objTypeLib = Nothing"
83.
  .WriteLine "    objWSHShell.Run ""mshta.exe """"javascript:new ActiveXObject('InternetExplorer.Application').PutProperty('"" _"
84.
  .WriteLine "      & strGuid & ""', window);"""""", 0"
85.
  .WriteLine "    set objWSHShell = Nothing"
86.
  .WriteLine "    i = 0"
87.
  .WriteLine "    On Error Resume Next"
88.
  .WriteLine "    Do"
89.
  .WriteLine "      WScript.Sleep 100"
90.
  .WriteLine "      For Each objShellWnd In objShellApp.Windows"
91.
  .WriteLine "        If IsObject(objShellWnd.GetProperty(strGuid)) Then"
92.
  .WriteLine "          set objHTAWnd = objShellWnd.GetProperty(strGuid)"
93.
  .WriteLine "          If TypeName(objHTAWnd) = ""HTMLWindow2"" Then"
94.
  .WriteLine "            bOK = True"
95.
  .WriteLine "            objShellWnd.Quit"
96.
  .WriteLine "            Exit Do"
97.
  .WriteLine "          Else"
98.
  .WriteLine "            set objHTAWnd = Nothing"
99.
  .WriteLine "          End If"
100.
  .WriteLine "        End If"
101.
  .WriteLine "      Next"
102.
  .WriteLine "      i = i + 1"
103.
  .WriteLine "    Loop While i < 600"
104.
  .WriteLine "    set objShellWnd = Nothing"
105.
  .WriteLine "    set objShellApp = Nothing"
106.
  .WriteLine "    If bOK Then objHTAWnd.document.body.innerHTML = _"
107.
  .WriteLine "      ""<object id=""""HtmlDlgHelper"""" classid=""""CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b""""></object>"""
108.
  .WriteLine "    On Error Goto 0"
109.
  .WriteLine "  End Sub"
110.
  .WriteLine ""
111.
  .WriteLine "  Private Sub Class_Terminate()"
112.
  .WriteLine "    If bOK Then objHTAWnd.close"
113.
  .WriteLine "    set objHTAWnd = Nothing"
114.
  .WriteLine "    set objFSO = Nothing"
115.
  .WriteLine "End Sub"
116.
  .WriteLine ""
117.
  .WriteLine "End Class"
118.
  .WriteLine ""
119.
  .WriteLine "'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
120.
  .Close
121.
End With
122.

123.
'	temporäre Batch-Datei ausführen, auf Ende warten
124.
WshShell.Run prog1, 0, True
125.
WshShell.Run prog2, 0, True
126.

127.
'	temporäre Batch-Datei löschen
128.
FSO.DeleteFile prog1, True
129.
FSO.DeleteFile prog2, True
130.

131.
'	temporäre Batch-Datein erzeugen
132.
Dim prog3 : prog3 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\TEST\Temp\" & FSO.GetTempName & ".cmd"
133.
Dim proglast : proglast = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\TEST\Temp\" & FSO.GetTempName & ".vbs"
134.
Dim progend : progend= WshShell.ExpandEnvironmentStrings("%userprofile%") & "\TEST\Temp\" & FSO.GetTempName & ".cmd"
135.

136.
'	XXX
137.
With FSO.CreateTextFile(prog3, True)
138.
	.WriteLine ""
139.
	.Close
140.
End With
141.

142.
'	readymsg
143.
With FSO.CreateTextFile(proglast, True)
144.
	.WriteLine "Set shell = CreateObject(""wscript.Shell"")"
145.
	.WriteLine "Set fso = CreateObject(""Scripting.FileSystemObject"")"
146.
	.WriteLine "strPath = shell.ExpandEnvironmentStrings(""%userprofile%"") & ""\TEST\TEST-buchungsbeleg-import.txt"""
147.
	.WriteLine "If fso.FileExists(strPath) then"
148.
	.WriteLine "	msgbox""Konvertierung abgeschlossen!"" & vbCrLf & """" & vbCrLf & ""TEST! "",64,""TEST"""
149.
	.WriteLine "End if"
150.
	.Close
151.
End With
152.

153.
'	import-Dateien auf Desktop verschieben und Temp Verzeichnis löschen
154.
With FSO.CreateTextFile(progend, True)
155.
	.WriteLine "set ""CURRENTTIME=%TIME::=.%"""
156.
	.WriteLine "copy ""%userprofile%\TEST\TEST-buchungsbeleg-import.txt"" ""%userprofile%\Desktop\TEST-buchungsbeleg-import_%DATE%_%CURRENTTIME:~0,8%.txt"""
157.
	.WriteLine "rd %userprofile%\TEST\ /s /q"
158.
	.Close
159.
End With
160.

161.
'	temporäre Batch-Datei ausführen, auf Ende warten
162.
WshShell.Run prog3, 0, True
163.
WshShell.Run proglast, 0, True
164.
WshShell.Run progend, 0, True
165.
Bitte warten ..
Mitglied: rubberman
21.06.2019 um 19:18 Uhr
Was ich definitiv sagen kann ist, dass diese Filedialogklasse auf Windows 10 nicht mehr funktioniert. Da musst du dir eine Alternative suchen. Powershell eventuell. https://www.powershellmagazine.com/2013/07/01/pstip-using-the-system-win ...

Steffen
Bitte warten ..
Mitglied: freshman2017
21.06.2019 um 19:43 Uhr
Dann müsste ich ja aufjedenfall folgendes nehmen:

01.
Add-Type -AssemblyName System.Windows.Forms
02.
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{
03.
    InitialDirectory = [Environment]::GetFolderPath('MyDocuments')
04.
    Filter = 'Documents (*.docx)|*.docx|SpreadSheet (*.xlsx)|*.xlsx'
05.
}
06.
[void]$FileBrowser.ShowDialog()
07.
$FileBrowser.FileNames
08.
Allerdings wie müsste ich das oben einfügen?
Bitte warten ..
Mitglied: rubberman
21.06.2019 um 22:18 Uhr
https://stackoverflow.com/questions/32297699/hide-command-prompt-window- ...

01.
Option Explicit
02.
Dim strCmd, strRes, objWnd, objParent, strSignature
03.

04.
If WScript.Arguments.Named.Exists("signature") Then WshShellExecCmd
05.
strCmd = "powershell -nop -ex Bypass -c ""Add-Type -AssemblyName System.Windows.Forms;$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{InitialDirectory=$env:userprofile;Filter='Textdateien (*.txt)|*.txt';};[void]$FileBrowser.ShowDialog();$FileBrowser.FileNames;"""
06.
RunCScriptHidden
07.
WScript.Echo strRes
08.

09.
Sub RunCScriptHidden()
10.
    strSignature = Left(CreateObject("Scriptlet.TypeLib").Guid, 38)
11.
    GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}").putProperty strSignature, Me
12.
    CreateObject("WScript.Shell").Run ("""" & Replace(LCase(WScript.FullName), "wscript", "cscript") & """ //nologo """ & WScript.ScriptFullName & """ ""/signature:" & strSignature & """"), 0, True
13.
End Sub
14.

15.
Sub WshShellExecCmd()
16.
    For Each objWnd In CreateObject("Shell.Application").Windows
17.
        If IsObject(objWnd.getProperty(WScript.Arguments.Named("signature"))) Then Exit For
18.
    Next
19.
    Set objParent = objWnd.getProperty(WScript.Arguments.Named("signature"))
20.
    objWnd.Quit
21.
    objParent.strRes = CreateObject("WScript.Shell").Exec(objParent.strCmd).StdOut.ReadAll()
22.
    WScript.Quit
23.
End Sub
So weit erst mal die Möglichkeit den Dialog im VBScript aufzurufen, ohne PS Fenster. Rest musst du ausknobeln.
Bitte warten ..
Mitglied: freshman2017
21.06.2019 um 23:02 Uhr
Hi Steffen,

vielen lieben Dank. Auf den ersten Blick verstehe ich nicht, wohin die geöffnete Datei „zwischengespeichert“ wird.

Scheint mir erstmal zu kompliziert zu sein, mit meinen Kenntnissen, um das oben einzufügen!? Nach dem Einfügen einer Datei soll eine Batch mit dieser ausgeführt werden.

Schönen Abend.
Bitte warten ..
Mitglied: rubberman
21.06.2019 um 23:12 Uhr
Variable strRes enthält den ausgewählten Dateiname der in Zeile 7 beispielhaft ausgegeben wird. Statt sie auszugeben verwendest du sie in deinem Code (der mir umständlich vorkommt, von dem ich nicht mal weiß was er eigentlich machen soll und der als PowerShell Script vermutlich ein Dreizeiler wäre).

Steffen
Bitte warten ..
Mitglied: freshman2017
22.06.2019 um 00:28 Uhr
Hi, mein Plan ist es eigentlich, mit deinem neuen Dialog eine Datei in ein Arbeitsverzeichnis zu laden: %userprofile%\TEST dort soll die eingeladene .txt Datei als test.txt gespeichert werden,damit sie weiter verarbeitet werden kann.

Das könnte ich dann so bei mir einbauen, wenn es funktioniert wie ich denke.
Bitte warten ..
Ähnliche Inhalte
VB for Applications

VBS zum kopieren ganzer Zeilen - Auswahl nach wertebereich

Frage von PowWowVB for Applications1 Kommentar

Hallo zusammen, ich bin gerade frisch hier angekommen. Bin gelockt worden durch die Tatsache, das ich eh gern mein ...

VB for Applications

VBS für Timestamp-Datei

gelöst Frage von PascalSchVB for Applications3 Kommentare

Hallo Zusammen, Bin ziemlich neu in der Welt des VBS und habe eine Frage hierzu, die ihr mir hoffentlich ...

XML

Vbs - simple XML Datei auslesen

gelöst Frage von DeeJayBeeXML4 Kommentare

Hallo zusammen, ich glaub, ich hab grad ne kleine Blockade oder denke viel zu kompliziert. Gegeben ist eine xml-Datei ...

Netzwerkmanagement

Auswahl Switch

Frage von JensNomaNetzwerkmanagement8 Kommentare

Ich habe einige Fragen zur Auswahl von Switchen: 1. Kann man an einen PoE Switch auch Geräte anschließen, die ...

Neue Wissensbeiträge
Humor (lol)
Das IoT wird schlimmer
Erfahrungsbericht von Henere vor 1 TagHumor (lol)7 Kommentare

Nun auch schon über den WSUS:

Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 2 TagenSicherheit1 Kommentar

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 2 TagenWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Grafik

Gute Spiele aus der Ubuntu Repository: SuperTuxKart

Information von NetzwerkDude vor 2 TagenGrafik2 Kommentare

Fall jemand die Firmenpolicy hat das man Linux Software nur aus dem default Repository installieren kann: Ich habe festgestellt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
10G Netzwerk konfigurieren für maximalen Datendurchsatz
gelöst Frage von hukimanLAN, WAN, Wireless37 Kommentare

Guten Morgen, in unserem Betrieb wurde das Netzwerk auf 10G (Kupfer) umgerüstet. Grund dafür sind große Laserscandaten die sehr ...

Netzwerke
Subnetzmaske mit Hilfe der IP-Adresse berechnen
gelöst Frage von Jennifer21Netzwerke18 Kommentare

Hi zusammen, kann mir bitte jemand helfen bei dieser Aufgabe. Ich muss die die Subnetzsmaske berechnen von den IP-Adressen: ...

Windows 10
3D PDF bei WIN 10 mit Adobe Acrobat DC öffnen
Frage von DysfunktionWindows 1014 Kommentare

Hallo zusammen, Aus einem Konstruktionsprogramm ( Catia ) kann man Zeichnungen als 3 d PDF exportieren. Diese werden lokal ...

Batch & Shell
Batch "dir B" nebeneinander statt untereinander mit , getrennt
gelöst Frage von plentmBatch & Shell14 Kommentare

Hallo zusammen, Mein erst Post und dann doch wahrscheinlich was einfaches. Leider reichen meine Kenntnisse dafür nicht aus, daher ...