Batch - Recopier un fichier dans un autre sans le début.

Batch - Recopier un fichier dans un autre sans le début. - Shell/Batch - Programmation

Marsh Posté le 25-08-2006 à 18:19:27    

Bonjour à toutes et à tous,
 
je voudrais pouvoir copier tout le contenu d'un fichier dans un autre, sauf les 43 premiers caractères.
J'ai essayé qq chose mais sans succès:
 
FOR /F "usebackq tokens=2" %%i IN (max2_mii5v1.001.yct) DO SET Nombre=%%i && GOTO Suite1
:Suite1
%Nombre:~43%>>max2_mii5v1.pdf
FOR /F "skip=1" %%i IN (max2_mii5v1.001.yct) DO ECHO %%i>max2_mii5v1.pdf
 
Merci d'avance pour votre aide.
 
YOYO, @+.

Reply

Marsh Posté le 25-08-2006 à 18:19:27   

Reply

Marsh Posté le 25-08-2006 à 20:57:54    

Bonjour,
Cela se fait très bien en vbs avec la fonction left() et len()...
Car la en batch je vois pas.
@++

Reply

Marsh Posté le 25-08-2006 à 23:05:11    

Merci d'avoir répondu arnaud1206.
Avec le vbs il faut installer quelque chose pour ça tourne ?
Ou c'est comme un fichier *.bat ?
 
YOYO, @+.

Reply

Marsh Posté le 25-08-2006 à 23:25:34    

Sinon en batch, il suffirait de modifier cette ligne  
%Nombre:~43%>>max2_mii5v1.pdf
en
echo %Nombre:~43%>>max2_mii5v1.pdf

Reply

Marsh Posté le 26-08-2006 à 08:21:34    

echo %Nombre:~43%>>max2_mii5v1.pdf m'écrit bien le reste de la première ligne comme souhaité.
Problème, FOR /F "skip=1" %%i IN (max2_mii5v1.001.yct) DO ECHO %%i>max2_mii5v1.pdf, n'écrit pas toutes les autres lignes du fichier dans max2_mii5v1.pdf.
Quelqu'un a une idée ?
PS:je ne travaille pas avec un fichier texte mais binaire.
 
YOYO, @+.

Reply

Marsh Posté le 26-08-2006 à 09:06:10    

ya un truc qui me chiffonne :/
tu as l'intention de creer un PDF de cette manière ?

Reply

Marsh Posté le 26-08-2006 à 12:56:47    

En quelque sorte. De manière général avec n'importe quel type de fichier.
C'est posssible en batch à ton avis ?
 
YOYO, @+.

Reply

Marsh Posté le 26-08-2006 à 13:02:30    

le PDF n'est pas un format plain/text mais plutôt binaire, donc vouloir générer un PDF avec un batch c'est farfelu comme idée :/
 
Sans compter que ce n'est pas en changeant une extension sur un fichier que tu vas changer son type

Reply

Marsh Posté le 26-08-2006 à 13:11:59    

yoyodede a écrit :

echo %Nombre:~43%>>max2_mii5v1.pdf m'écrit bien le reste de la première ligne comme souhaité.
Problème, FOR /F "skip=1" %%i IN (max2_mii5v1.001.yct) DO ECHO %%i>max2_mii5v1.pdf, n'écrit pas toutes les autres lignes du fichier dans max2_mii5v1.pdf.
Quelqu'un a une idée ?
PS:je ne travaille pas avec un fichier texte mais binaire.
 
YOYO, @+.


Effectivement, ce n'est pas génial de traiter un fichier binaire de cette façon.
 
Indépendamment de cela, la réponse à la première question : fais des tests avec > et >>.

Reply

Marsh Posté le 26-08-2006 à 13:12:30    

Je ne vais pas générer un PDF à proprement parlé.
C'est une recomposition d'un fichier PDF découpé en plusieurs parties.
Pour le binaire, je l'avais déjà précisé plus haut.
Tu penses que c'est possible avec un *.bat ?
 
YOYO, @+.

Reply

Marsh Posté le 26-08-2006 à 13:12:30   

Reply

Marsh Posté le 26-08-2006 à 13:17:22    

wackevat a écrit :

Effectivement, ce n'est pas génial de traiter un fichier binaire de cette façon.
 
Indépendamment de cela, la réponse à la première question : fais des tests avec > et >>.


J'ai essayé avec > et >> et malheureusement même résultat.
Le reste du fichier n'est pas recopié.
 
YOYO, @+.

Reply

Marsh Posté le 26-08-2006 à 19:38:27    

yoyodede a écrit :

J'ai essayé avec > et >> et malheureusement même résultat.
Le reste du fichier n'est pas recopié.
 
YOYO, @+.


C'est parce que tu sors tout de suite de la boucle après le premier tour, par ton Goto.
 
On utilise call :Suite1 dans un tel cas.

Reply

Marsh Posté le 26-08-2006 à 20:14:34    

Le goto est juste dans la première boucle qui ne recopie qu'une fin de ligne (fait exprès).
Par contre l'autre boucle n'a pas de goto, donc doit être faite en entier.
Et rien du tout. Rien de recopié.
 
YOYO, @+.

Reply

Marsh Posté le 26-08-2006 à 21:25:04    

Question : c'est fait exprès aussi de ne recopier, à partir de la deuxième ligne, que son premier token ?

Reply

Marsh Posté le 26-08-2006 à 21:46:47    

En faisant :
FOR /F "skip=1" %%i IN (max2_mii5v1.001.yct) DO ECHO %%i>max2_mii5v1.pdf
on ne recopie que le premier token ?
Parce que c'est pas le but.
Le but c'est de recopier les lignes entières.
 
YOYO, @+.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed