Dieses Windows-Batch-Skript (.bat) automatisiert den Übertragungs- und Bereitstellungsfluss von Schnittstellendateien zwischen einem lokalen Server (D:\FOX4WORK) und einer entfernten Netzwerkfreigabe (\\10.252.31.55). Seine Hauptaufgabe besteht darin, Einkaufs- und Kommissionieraufträge zu zentralisieren und anschließend die ERP-Dateien (insbesondere die „Picking“-Datenströme) vor ihrer endgültigen Bereitstellung korrekt zu formatieren.
Ordnerstruktur
Quellordner (Netzwerk)
-
\\10.252.31.55\interface\243A\PICK_ORDERS\: Eingehende Kommissionieraufträge (Picking). -
\\10.252.31.55\interface\243A\PURCHASE_ORDERS\: Eingehende Einkaufsaufträge.
Lokale Arbeitsordner
-
D:\FOX4WORK\EXCHANGE\IN FOX\: Lokaler Empfangsbereich für die Verarbeitung. -
D:\FOX4WORK\EXCHANGE\IN ERP\: Bereitstellungsbereich für Dateien, die für das ERP-System bestimmt sind.
Zielordner (Netzwerk)
-
\\10.252.31.55\interface\243A\TO-ERP\: Endgültiger Einstiegspunkt für das ERP. -
\\10.252.31.55\interface\243A\TO-ERP\source\: Archiv- / Sicherungsordner für die gesendeten Rohdateien.
Funktionsweise des Skripts
Schritt 1: Erfassung eingehender Dateien
Das Skript beginnt damit, alle in den Netzwerkordnern PICK_ORDERS und PURCHASE_ORDERS vorhandenen Dateien in den lokalen Verarbeitungsordner IN FOX zu übertragen.
Schritt 2: Normalisierung der Kommissionierdateien (Picking)
Dieser Abschnitt verarbeitet gezielt Dateien in IN ERP, die die Zeichenkette _picking_ im Namen enthalten (Erwartetes Eingabeformat: [Präfix]_picking_[RechnungsNr].csv).
-
Logik der Umbenennung: Das Ziel besteht darin, das Schlüsselwort „picking“ ganz an das Ende des Dateinamens zu verschieben, um das standardisierte Format zu erhalten:
[Präfix]_[RechnungsNr]_picking.csv. -
Schutz vor Endlosschleifen: Das Skript enthält eine Sicherheitsbedingung (
if /i not "!fullname:~-8!"=="_picking"). Wenn eine Datei bereits umbenannt wurde und auf_pickingendet, wird sie automatisch übersprungen, um zu verhindern, dass ihr Name bei einer späteren Ausführung beschädigt wird.
Schritt 3: Verteilung und Archivierung
Sobald die Dateien im lokalen Ordner IN ERP bereitstehen:
-
Werden sie zunächst zu Archivierungszwecken in den Unterordner
\sourcekopiert. -
Werden sie anschließend in den Zielordner
TO-ERPverschoben (lokal gelöscht), damit das Zielsystem sie verarbeiten kann.
Technische Besonderheiten
-
Windows-Voraussetzungen: Das Skript verwendet die verzögerte Variablenexpansion (
setlocal enabledelayedexpansion). Dies ermöglicht es, Variablen (!prefix!,!numfact!) innerhalb derFOR-Schleife in Echtzeit zu ändern und auszulesen. -
Variablenextraktion per Trennzeichen: Um den Dateinamen zu zerlegen, ersetzt das Skript vorübergehend die Zeichenkette
_picking_durch einen Backslash\. Anschließend werden Tokens (tokens=1,2) verwendet, um das Präfix und die Rechnungsnummer sauber zu isolieren.
Script
@echo off
setlocal enabledelayedexpansion
:: 1. Déplacement des fichiers d’entrée
move „\\10.252.31.55\interface\243A\PICK_ORDERS\*.*“ „D:\FOX4WORK\EXCHANGE\IN FOX“
move „\\10.252.31.55\interface\243A\PURCHASE_ORDERS\*.*“ „D:\FOX4WORK\EXCHANGE\IN FOX“
:: 2. Boucle sur les fichiers du dossier IN ERP afin de placer Picking en fin de script
for %%F in („D:\FOX4WORK\EXCHANGE\IN ERP\*_picking_*.csv“) do (
set „fullname=%%~nF“
:: Vérification de sécurité : on traite le fichier UNIQUEMENT s’il ne se termine PAS déjà par „_picking“
if /i not „!fullname:~-8!“==“_picking“ (
:: On sépare proprement le préfixe et le numéro via le séparateur temporaire „\“
for /f „delims=“ %%A in („!fullname:_picking_=\!“) do (
set „temp_var=%%A“
for /f „tokens=1,2 delims=\“ %%B in („!temp_var!“) do (
set „prefix=%%B“
set „numfact=%%C“
)
)
:: Renommer le fichier avec le format exact
echo Renommage de : %%F en : !prefix!_!numfact!_picking.csv
ren „%%F“ „!prefix!_!numfact!_picking.csv“
) else (
echo Fichier deja au bon format, ignore : %%~nxF
)
)
:: 1. Déplacement des fichiers de sortie
copy „D:\FOX4WORK\EXCHANGE\IN ERP\*.*“ „\\10.252.31.55\interface\243A\TO-ERP\source“
move „D:\FOX4WORK\EXCHANGE\IN ERP\*.*“ „\\10.252.31.55\interface\243A\TO-ERP“