Bonjour a tous,
Je suis confronte a un probleme lors de la transformation d'un fichier CSV en Batch:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
title Business Partner - CSV Transformation

cls
set newfile=BPTransform.csv
set counter=0

for /f "tokens=* delims=;" %%a in ( BPartner.csv ) do set line=%%a &call :setcontent

:setcontent
REM --------------------
REM Set content
REM --------------------
echo %counter%
if /i "%counter%" equ "0" call :setheader
pause

echo %line% > line.tmp
for /f "tokens=1-20,* delims=;" %%a in ( line.tmp ) do set line=%%a;%%b;%%c;%%d;%%e;%%f;%%g;%%h;%%i;%%j;%%k;%%l;%%m;%%n;%%o;%%p;%%r;%%s;%%t;%%u;toto;%%v
echo %line%
del line.tmp

REM --------------------
REM Add line
REM --------------------
echo ZECI_STR_BUPA_UPLOAD_I;%line% >> %newfile%
set /a counter+=1 
goto :eof

:setheader 
REM --------------
REM Add the header
REM --------------
echo %line% > line.tmp
for /f "tokens=1 delims=;" %%b in ( line.tmp ) do echo ZECI_CONTAINER_I;%%b; >> %newfile%
del line.tmp
goto :eof

:end
En realite, dans la boucle de set content (pas tres propre, je l'avoue), j'aimerai conserver les espaces mais FOR /F les supprime.

Exemple:
A;;C...etc
Dans ce cas B doit etre egal a ''. Est-ce possible de resoudre ce probleme ?
J'ai essaye des doubles boucles imbriquees .. pas mieux.

Vous remerciant,
L.