Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

BAT Datei Text reinsetzen

BAT Datei Text reinsetzen
10.10.2019 13:13:27
sigrid
Hallo allerseits,
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

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: BAT Datei Text reinsetzen
10.10.2019 13:40:26
ChrisL
Hi
Eine BAT-Datei ist bis auf die Dateiendung eine ganz normale TXT-Datei.
Wie man eine Text-Datei per VBA bearbeitet, solltest du im Archiv finden.
Ob der generelle Weg, die BAT-Datei zu modifizieren richtig ist, kann ich aufgrund der Beschreibung nicht sagen. Womöglich wäre es sinnvoller, der BAT-Datei einen Input-Parameter mitzugeben, aber dazu müsste man erstmal die BAT-Datei umschreiben.
cu
Chris
AW: BAT Datei Text reinsetzen
10.10.2019 14:04:04
sigrid
Hallo Chris,
danke für die Info.
Ich möchte ggf. die aktive Zeile zum kopieren ggf. in der Sheet ändern.
Das ist einfacher als auf Datei klicken und "Bearbeiten" auswählen.
Würde mich freuen auf ein Makro Beispiel.
mfg sigrid
Anzeige
AW: BAT Datei Text reinsetzen
10.10.2019 15:01:23
ChrisL
Hi
Keine Ahnung, was du mir damit sagen willst.
Ich lasse die Frage offen.
cu
Chris
AW: BAT Datei Text reinsetzen
10.10.2019 16:14:34
mmat
Hallo
stell Dir vor, in A1 steht der Name (mit Pfad) der Batschdatei.
Der Befehl, der Reingeschrieben werden soll steht in der aktuellen Zelle.
Dann geht das so
Sub batch()
Dim fn As String, s As String
fn = Cells(1, 1).Text
s = ActiveCell.Text
Open fn For Output As #1
Print #1, s
Print #1, "pause"
Close #1
Shell "cmd " + s, vbNormalFocus
End Sub
vg, MM
MM perfekt !!! Danke -)
10.10.2019 17:39:26
sigrid
Hallo mm,
danke genau das braucht ich.
Allerdings bleibt allerdings ein Fenster offen !
mfg
sigrid
Anzeige
Fenster offen ?
14.10.2019 09:35:16
mmat
Hi,
das ist Absicht, damit man lesen kann, was da drin steht. Die aufgerufene Anwendung könnte ja mit 'nem Fehler reagieren.
wenn du das nicht möchtest, kommentiere einfach die Zeile wo "pause" drin steht aus.
vg, MM

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige