% .bat

Résolu
superchinoy -  
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Lorsque je lance mon fichier .bat, les % disparaissent et cela plante donc alors que cela fonctionne en ligne de commande. Des idées ?

@echo off
FOR /F "eol=; tokens=4,5* " %i in ('DIR /O-D') do if %i==debut_fichier (GOTO end)
:end
@echo END
@echo %j
PAUSE


A voir également:

4 réponses

superchinoy
 
OK, c'est résolu, il faut mettre deux fois le % dans un bat...
@echo off
FOR /F "eol=; tokens=4,5* " %%i in ('DIR /O-D') do if %%i==debut_fichier (GOTO end)
:end
@echo END
@echo %%j
PAUSE
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour,

Peux-tu expliquer, s'il te plaît à quoi sert ton code.
Merci

Je cherche à faire un code qui me permettrait d'effacer les n caractères qui se situent entre deux ; pour toutes les lignes d'un document csv
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
Je cherche à faire un code qui me permettrait d'effacer les n caractères qui se situent entre deux ; pour toutes les lignes d'un document csv
montre un exemple
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Hello dubcek & superchinoy

Pour un des utilisateurs de la base de données, quand ils nous envoie les données on à ceci
id_article; magasin1; designation; famille; cout_unitaire
131; 131 ~ magasin1; Lampe de poche; sport; 10
132; 132 ~magasin1; gourde; sport; 10

il faut que je retire la partie 131 ~ par exemple

Pour ce client, c'est le problème inverse que la question à laquelle tu as répondu ce matin.
https://forums.commentcamarche.net/forum/affich-32769191-insertion-d-un-champs-dans-un-document-csv#p32774529

Çà ne fais que 2 jours que je code en batch et je commence à devenir folle.

Merci pour l'aide que vous pourrez m'apportée.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on teste pour ne pas modifier la 1ère ligne
C:> type f1.csv
id_article; magasin1; designation; famille; cout_unitaire
131; 131 ~ magasin1; Lampe de poche; sport; 10
132; 132 ~magasin1; gourde; sport; 10
C:> bb
id_article; magasin1; designation; famille; cout_unitaire
131; magasin1; Lampe de poche; sport; 10
132; magasin1; gourde; sport; 10

C:> type bb.bat
@echo off
setlocal ENABLEDELAYEDEXPANSION
set l=1
for /F "delims=; tokens=1,2,*" %%a in (f1.csv) do (
set c2=%%b
if !l! NEQ 1 (
set c2=!c2:~6,20!
)
echo %%a; !c2!; %%c
set /a l+=1
)
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci dubcek
:)
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004 > DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

Est ce que çà serait possible selon toi de pouvoir faire la même chose mais avec un nombre de caractères à supprimer variable.
Sinon je devrais adapter le script selon le nombre de caractères à supprimer.

C:> type f1.csv
id_article; magasin1; designation; famille; cout_unitaire
131;131 ~ magasin1; Lampe de poche; sport; 10
132;132 ~magasin1; gourde; sport; 10
.....
1132;1132 ~magasin1; gourde; sport; 10
11132;11132 ~magasin1; gourde; sport; 10

C:> bb
id_article; magasin1; designation; famille; cout_unitaire
131;magasin1; Lampe de poche; sport; 10
132;magasin1; gourde; sport; 10
.....
1132;magasin1; gourde; sport; 10
11132;magasin1; gourde; sport; 10

Je vais tester en mettant un while dans le for
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
quel critère pour savoir jusqu'ou supprimner ? le champ contient toujours magasin ?
0
Dev1
 
Bonjour dubcek

J'ai le même problème que DelNC

J'ai essayer de mettre le code que tu as posté le 20 novembre mais je ne vois pas où je dois le mettre.
Un coup de Main s'il te plaît

Merci
:)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
le mettre où ? dans le code du 13 novembre ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
le mettre où ? dans le code du 13 novembre ?
0
Dev1 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui, s'il te plaît
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
le mettre où ? dans le code du 13 novembre ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
@echo off
setlocal ENABLEDELAYEDEXPANSION
set l=1
for /F "delims=; tokens=1,2,*" %%a in (f1.txt) do (
set c2=%%b
if !l! NEQ 1 (
for /F "delims=m tokens=2*" %%x in ('echo !c2!') do set c2=m%%x
)
echo %%a; !c2!; %%c
set /a l+=1
)
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour dubcek

Merci encore pour le code que m'avais donné.

Il m'a beaucoup aidé.

J'avais besoin après de faire des manipulations sur le document original et le résultat.
Il fallait les renommer et les déplacer dans des répertoire.

Je mets le code au cas où çà pourrai aider quelqu’un

:: copie le nouveau fichier resultat.csv dans le repertoire RESULT
xcopy resultat.csv .\RESULT

:: recuperation de la date du jour
set mydate=%date:~6,4%_%date:~3,2%_%date:~0,2%


:: je renomme le fichier en Article_Final_yyyy_mm_dd
move resultat.csv Articles_Final_%mydate%.csv
set Final=Articles_Final_%mydate%.csv


:: je renomme le fichier en Articleoriginal_yyyy_mm_dd
move Articles.csv Articles_Original_%mydate%.csv
set Original=Articles_Original_%mydate%.csv

:: deplace le repertoire Final dans HISTO
move "%Final%" ".\HISTO\FINAL"

:: deplace le repertoire Originaldans HISTO
move "%Original%" ".\HISTO\ORIGINAL"
0