Dit Windows Batch-script (.bat) automatiseert de overdracht en voorbereiding van interfacebestanden tussen een lokale server (D:\FOX4WORK) en een externe netwerkmap (\\10.252.31.55). De hoofdtaak is het centraliseren van inkoop- en voorbereidingsorders en het correct formatteren van ERP-bestanden (met name “Picking”-stromen) voordat ze definitief beschikbaar worden gesteld.
Maparchitectuur
Bronmappen (Netwerk)
-
\\10.252.31.55\interface\243A\PICK_ORDERS\: Binnenkomende voorbereidingsorders. -
\\10.252.31.55\interface\243A\PURCHASE_ORDERS\: Binnenkomende inkooporders.
Lokale Werkmappen
-
D:\FOX4WORK\EXCHANGE\IN FOX\: Lokale ontvangstzone voor verwerking. -
D:\FOX4WORK\EXCHANGE\IN ERP\: Voorbereidingszone voor bestanden bestemd voor het ERP-systeem.
Doelmappen (Netwerk)
-
\\10.252.31.55\interface\243A\TO-ERP\: Definitief toegangspunt voor het ERP. -
\\10.252.31.55\interface\243A\TO-ERP\source\: Archief- / back-upmap voor de verzonden onbewerkte bestanden.
Werking van het Script
Stap 1: Verzamelen van Binnenkomende Bestanden
Het script begint met het overbrengen van alle bestanden uit de netwerkmappen PICK_ORDERS en PURCHASE_ORDERS naar de lokale verwerkingsmap IN FOX.
Stap 2: Normalisatie van Picking-bestanden
Dit gedeelte verwerkt specifiek de bestanden in IN ERP die de tekenreeks _picking_ in hun naam bevatten (Verwacht invoerformaat: [Voorvoegsel]_picking_[FactuurNr].csv).
-
Hernoemingslogica: Het doel is om het trefwoord “picking” naar het absolute einde van de bestandsnaam te verplaatsen om het gestandaardiseerde formaat te verkrijgen:
[Voorvoegsel]_[FactuurNr]_picking.csv. -
Beveiliging tegen Oneindige Lus: Het script bevat een veiligheidsvoorwaarde (
if /i not "!fullname:~-8!"=="_picking"). Als een bestand al is hernoemd en eindigt op_picking, wordt het automatisch overgeslagen om te voorkomen dat de naam bij een volgende uitvoering beschadigd raakt.
Stap 3: Distributie en Archivering
Zodra de bestanden klaar staan in de lokale map IN ERP:
-
Worden ze eerst gekopieerd naar de submap
\sourcevoor archiveringsdoeleinden. -
Worden ze vervolgens verplaatst (verwijderd van de lokale schijf) naar de hoofdmap
TO-ERPom door het doelsysteem te worden verwerkt.
Technische Specificaties
-
Windows-vereisten: Het script maakt gebruik van uitgestelde variabele-expansie (
setlocal enabledelayedexpansion). Hierdoor kunnen variabelen (!prefix!,!numfact!) binnen deFOR-lus in realtime worden gewijzigd en gelezen. -
Variabele-extractie via Scheidingsteken: Om de bestandsnaam te splitsen, vervangt het script tijdelijk de tekenreeks
_picking_door een backslash\. Vervolgens worden tokens (tokens=1,2) gebruikt om het voorvoegsel en het factuurnummer netjes te isoleren.
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”