Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Taille maximum pour la commande SET

7 réponses
Avatar
badynfo
Salut,

Existe-t'il un moyen dans un fichier de commande .bat d'affecter à une
variable une chaine de caracteres de taille supérieure à 256? C'est
sous Windows 2000.

Un extrait du code en question:

FOR /F "delims=" %%V IN (mon_fichier) DO SET ma_var=%%V
(récupération de la dernière ligne de mon_fichier, y'a plus simple
sûrement ?)

Si une ligne est trop longue, l'itération correspondante ne positionne
pas ma_var.

Merci d'avance !

7 réponses

Avatar
AMcD®
Bad Ynfo wrote:
Salut,

Existe-t'il un moyen dans un fichier de commande .bat d'affecter à une
variable une chaine de caracteres de taille supérieure à 256? C'est
sous Windows 2000.



Si j'ai bonne mémoire non, je ne crois pas. Il me semble que c'était limité
à 256. SET c'est pas pour gérer des chaînes de caractères, mais pour
affecter des variables d'environnement...

Cette lecture te sera utile :

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q97/5/95.ASP&NoWebContent=1

--
AMcD®

http://arnold.mcdonald.free.fr/
Avatar
badynfo
"AMcD®" wrote in message news:<41628c60$0$770$...
Bad Ynfo wrote:
> Salut,
>
> Existe-t'il un moyen dans un fichier de commande .bat d'affecter à une
> variable une chaine de caracteres de taille supérieure à 256? C'est
> sous Windows 2000.

Si j'ai bonne mémoire non, je ne crois pas. Il me semble que c'était limité
à 256. SET c'est pas pour gérer des chaînes de caractères, mais pour
affecter des variables d'environnement...

Cette lecture te sera utile :

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q97/5/95.ASP&NoWebContent=1




Merci pour ta réponse.

Le casse-tête initial, si quelqu'un voit une solution: comment dans un
.bat récupérer la dernière ligne d'un fichier texte, qui peut faire +
de 256 caractères, pour la passer en paramètre d'une autre commande
(un script Perl en l'occurence).

A+
Avatar
Dominique Vaufreydaz
Bonjour,

Merci pour ta réponse.



Sachant que j'ai cygwin d'installé, je peux faire

tail -n 1 fichier > fichier2

Le casse-tête initial, si quelqu'un voit une solution: comment dans un
.bat récupérer la dernière ligne d'un fichier texte, qui peut faire +
de 256 caractères, pour la passer en paramètre d'une autre commande
(un script Perl en l'occurence).



Tu le passes en parametres ?

Tu le passes en entree standard de ton perl genre
Tail fichier | perl truc...

Voila des idèes quoi...

Sinon tu peux aussi passer la commande en parametre
genre : perl toto.pl "tail -n 1 toto.txt"

Et faire dans ton perl $res = `$ARGV[x]` ou X est ton parametre.

Voila des pistes. Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://Dominique.Vaufreydaz.free.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/
Avatar
Cyrille Szymanski
Le 06-10-2004, Bad Ynfo a écrit :

Le casse-tête initial, si quelqu'un voit une solution: comment dans un
.bat récupérer la dernière ligne d'un fichier texte, qui peut faire +
de 256 caractères, pour la passer en paramètre d'une autre commande
(un script Perl en l'occurence).



Si tu as Perl, parfait, pourquoi ne pas écrire en Perl ce que fait le
.bat ?

--
cns
Avatar
badynfo
"Dominique Vaufreydaz" wrote in message news:<ck172u$hf1$...
Bonjour,

> Merci pour ta réponse.

Sachant que j'ai cygwin d'installé, je peux faire

tail -n 1 fichier > fichier2



Oui mais sur les serveurs concernés, cygwin n'est pas installé. Je ne
peux d'ailleurs pas faire d'installations importantes de ce type (à la
rigueur, je pourrais déposer un binaire "tail.exe" free si ça existe
...)


> Le casse-tête initial, si quelqu'un voit une solution: comment dans un
> .bat récupérer la dernière ligne d'un fichier texte, qui peut faire +
> de 256 caractères, pour la passer en paramètre d'une autre commande
> (un script Perl en l'occurence).

Tu le passes en parametres ?

Tu le passes en entree standard de ton perl genre
Tail fichier | perl truc...

Voila des idèes quoi...

Sinon tu peux aussi passer la commande en parametre
genre : perl toto.pl "tail -n 1 toto.txt"

Et faire dans ton perl $res = `$ARGV[x]` ou X est ton parametre.

Voila des pistes. Doms.



Merci pour tes bonnes idées. Le
perl toto.pl "tail -n 1 toto.txt"
doit répondre au problème si je peux trouver un "tail" adéquat et si
le 2eme paramètre d'une commande (le "tail -n 1 toto.txt" dans notre
cas) peut faire plus de 256 caractères quand on l'exécute dans un
point .bat.

B.Y.
Avatar
badynfo
Cyrille Szymanski wrote in message news:...
Le 06-10-2004, Bad Ynfo a écrit :
>
> Le casse-tête initial, si quelqu'un voit une solution: comment dans un
> .bat récupérer la dernière ligne d'un fichier texte, qui peut faire +
> de 256 caractères, pour la passer en paramètre d'une autre commande
> (un script Perl en l'occurence).

Si tu as Perl, parfait, pourquoi ne pas écrire en Perl ce que fait le
.bat ?



Oui, ce serait une solution de dernier recours car elle demanderait
pas mal de boulot dans l'environnement concerné.
Merci pour ta réponse.
Avatar
Dominique Vaufreydaz
Bonjour,

Merci pour tes bonnes idées. Le
perl toto.pl "tail -n 1 toto.txt"
doit répondre au problème si je peux trouver un "tail" adéquat et si
le 2eme paramètre d'une commande (le "tail -n 1 toto.txt" dans notre
cas) peut faire plus de 256 caractères quand on l'exécute dans un
point .bat.



Ouai, tu prends celui de cygwin avec la dll qui va bien et ca roule.

Sinon, la reponse de Cyrille n'est pas denue de sens, tu passes le nom
du fichier et tu fais

$ligne ='';
open( FICHIER, "<$ARGV[x]" ) or die "impossible d'ouvrir le fichier";
while( $ligne = <FICHIER> );
close( FICHIER );

Voila. Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://Dominique.Vaufreydaz.free.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/