Batch-Datei über Shell ausführen
Schritt-für-Schritt-Anleitung
Um eine Batch-Datei über VBA auszuführen, befolge diese Schritte:
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Rechtsklick auf "VBAProject (DeinDateiname)" > Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Dim a
a = Shell("I:\akiessling\ftp\Directory.bat", 1)
-
Ändere den Pfad zur Batch-Datei, falls nötig.
-
Führe das Makro aus, um die Batch-Datei zu starten.
Häufige Fehler und Lösungen
-
Keine txt-Datei wird erzeugt:
- Stelle sicher, dass die Pfade in der Batch-Datei korrekt sind. Verwende absolute Pfade, um Probleme mit relativen Pfaden zu vermeiden.
-
Fehler beim Ausführen über VBA:
- Probier die Verwendung von
cmd
:
Shell "cmd /c I:\akiessling\ftp\Directory.bat", 1
-
Batch-Datei wird nicht vollständig ausgeführt:
- Füge
pause
am Ende der Batch-Datei hinzu, um zu sehen, ob sie korrekt aufgerufen wird.
Alternative Methoden
-
ShellExecute verwenden: Eine andere Methode, um eine Batch-Datei auszuführen, ist die Verwendung von ShellExecute
:
Public 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
Sub ExecuteBatch()
Call ShellExecute(0, "open", "I:\akiessling\ftp\Directory.bat", "", "", 1)
End Sub
Praktische Beispiele
Ein einfaches Beispiel für eine batch-Datei
:
@echo off
ftp -s:Directory.ftp
In der Directory.ftp
-Datei könnte folgender Code stehen:
open [myFtp].[myDomain].org
[myUserName]
[myPassword]
dir *.* C:\ftp\liste.txt
bye
Um die batch-Datei
zu testen, führe sie zuerst direkt im Windows Explorer aus, um sicherzustellen, dass sie funktioniert, bevor Du sie über VBA startest.
Tipps für Profis
-
Batch minimiert starten: Wenn Du die Batch-Datei minimiert ausführen möchtest, ändere den Shell-Befehl zu:
Shell "cmd /c start /min I:\akiessling\ftp\Directory.bat", 1
-
Eingabeaufforderung überwachen: Verwende echo on
, um die Fortschritte innerhalb der Batch-Datei anzuzeigen.
FAQ: Häufige Fragen
1. Was ist eine BAT-Datei?
Eine BAT-Datei (Batch-Datei) ist eine Textdatei, die eine Reihe von Befehlen enthält, die nacheinander ausgeführt werden, wenn die Datei gestartet wird.
2. Wie kann ich eine Batch-Datei über VBA ausführen?
Du kannst eine Batch-Datei in VBA mit dem Shell-Befehl oder über die ShellExecute-Funktion ausführen.
3. Warum wird meine TXT-Datei nicht erstellt?
Überprüfe die Pfadangaben in deiner Batch-Datei und stelle sicher, dass Du die richtigen Berechtigungen hast, um in das Zielverzeichnis zu schreiben.