BAT Datei Text reinsetzen
10.10.2019 13:13:27
sigrid
ich habe eine BAT.Datei "Test.com"
In diese Datei möchte ich gern Text einsetzen und schließen.
z.B.
roboCopy d:\_Test\###_Sicherung_Sigi\ e:\ /MIR
so das beim Neustart der Datei, der Kopiervorgang läuft.
zum Starten habe ich dies gefunden, das klappt:
Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Private Const MAX_PATH = 260&
Private Const SW_NORMAL As Long = 1
Public Sub BAT_Ausführen()
Dim strPath As String, strShortPath As String, strFile As String
Dim lngReturn As Long
' strFile = "tree.bat" 'Dateiname anpassen
strFile = "Test.cmd" 'Dateiname anpassen
' strPath = "D:\Eigene Dateien\BAT\" 'Pfad anpassen
strPath = "C:\" 'Pfad anpassen
strShortPath = Space$(MAX_PATH)
Call GetShortPathName(strPath & strFile, strShortPath, MAX_PATH)
strShortPath = Left$(strShortPath, InStr(1, strShortPath & vbNullChar, vbNullChar) - 1)
lngReturn = ShellExecute(GetActiveWindow, "open", _
strShortPath, vbNullString, strPath, SW_NORMAL)
If lngReturn
Private Function ShellExecuteErrMessage(lngReturn As Long) As String
Select Case lngReturn
Case 0: ShellExecuteErrMessage = _
"Zuwenig Speicher, ausführbare Datei war " & _
"zerstört, Relokationswerte waren ungültig"
Case 2: ShellExecuteErrMessage = _
"Datei wurde nicht gefunden."
Case 3: ShellExecuteErrMessage = _
"Verzeichnis wurde nicht gefunden."
Case 5: ShellExecuteErrMessage = _
"Fehler beim gemeinsamen Zugriff auf eine Datei im Netz oder " & vbLf & _
"Fehler beim Zugriff auf eine gesperrte Datei im Netz."
Case 6: ShellExecuteErrMessage = _
"Bibliothek forderte separate Datensegmente für jede Task an."
Case 8: ShellExecuteErrMessage = _
"Zuwenig Speicher, um die Anwendung zu starten."
Case 10: ShellExecuteErrMessage = _
"Falsche Windows-Version."
Case 11: ShellExecuteErrMessage = _
"Ungültige ausführbare Datei. Entweder keine" & vbLf & _
"Windows-Anwendung oder Fehler in der EXE-Datei."
Case 12: ShellExecuteErrMessage = _
"Anwendung für ein anderes Betriebssystem."
Case 13: ShellExecuteErrMessage = _
"Anwendung für MS-DOS 4.0."
Case 14: ShellExecuteErrMessage = _
"Typ der ausführbaren Datei unbekannt."
Case 15: ShellExecuteErrMessage = _
"Versuch, eine Real-Mode-Anwendung " & _
"(für eine frühere Windows-Version) zu laden."
Case 16: ShellExecuteErrMessage = _
"Versuch, eine zweite Instanz einer ausführbaren Datei mit mehreren " & vbLf & _
"Datensegmenten die nicht als nur lesbar gekennzeichnet waren, zu laden."
Case 19: ShellExecuteErrMessage = _
"Versuch, eine komprimierte ausführbare Datei zu laden." & vbLf & _
"Die Datei muß dekomprimiert werden, bevor sie geladen werden kann."
Case 20: ShellExecuteErrMessage = _
"Ungültige dynamische Linkbibliothek (DLL)." & vbLf & "Eine der DLLs, " & vbLf & _
"die benötigt wurde, um die Anwendung auszuführen, war beschädigt."
Case Else: ShellExecuteErrMessage = _
"Ein Unbekannter Fehler ist aufgetreten. (" & CStr(lngReturn) & ")"
End Select
End Function
mfg sigrid