nombre maximum de parametres [Batch] - Shell/Batch - Programmation
Marsh Posté le 30-05-2006 à 20:32:52
Déjà tu peux très bien faire :
set VAR=%VAR:~x,y%
donc inutile de définir trois variables différentes pour STRING.
D'ailleurs entre les définitions de STR et ST, n'y a-t-il pas une rédondance ?
Pour répondre à ton problème, tu comptes taper les 8000 params à la main ou par copier/coller ?
Ce serait plus simple d'employer une boucle for :
Code :
|
for /?
pour plus d'infos.
Note : STR1... STR8000 peuvent très bien être stockés dans un fichier séparé.
Marsh Posté le 30-05-2006 à 20:43:37
merci pour ton aide
Mais pour les fichiers je compte plutot les glisser dans le .bat, ce sont des images tirées de plusieurs vidéo et donc je voudrais choisir sur lesquelles travailler simplement en les glissant dans le .bat.
S'il n'y a pas de moyen, je pourrais utiliser le fichier temporaire mais le programme n'étant pas pour moi, il serait plus simple de simplement mettre les fichiers dans le .bat pour qu'ils soient traités !
Marsh Posté le 30-05-2006 à 20:57:29
Je ne comprends pas trop ce que tu voulais dire par "mettre les fichiers dans le .bat pour qu'ils soient traités"
Marsh Posté le 30-05-2006 à 21:22:48
en fait je veux le faire par une interface Windows et donc faire un clic gauche sur les images pour les glisser jusqu'au .bat et donc les donner en argument du .bat.
J'espere avoir ete clair cette fois :s
Marsh Posté le 30-05-2006 à 22:22:43
Oki, tu veux fournir les params par glisser/déposer.
Je ne pense pas que ça soit une soluce "universelle", dans le sens que cette manip forme une ligne de commande shell :
<chemin_complet_du_batch> <liste_des_params>
Or, sous Windows, la longueur de cette ligne est limitée à x caractères, dont x je ne me souviens plus mais ce n'est pas infini, d'où ton problème de traitement d'au-delà de 80 fichiers abordé initialement.
Marsh Posté le 31-05-2006 à 12:45:21
ok merci,
Au final je vais donc utiliser la méthode que tu m'as donné plus haut !
Marsh Posté le 31-05-2006 à 16:13:16
hum...
j'essaye donc d'utiliser une boucle for mais
Citation : @echo off |
ne tronque pas la valeur comme je le souhaiterais, et m'affiche : monfichier.ext:~-4 !
tmp.txt contenant 1 nom de fichier à traiter par ligne
est-ce donc possible de tronquer %%a ???
Marsh Posté le 01-06-2006 à 08:13:37
Industrie a écrit : est-ce donc possible de tronquer %%a ??? |
Code :
|
Marsh Posté le 30-05-2006 à 20:11:57
J ai creer un batch dont le but est de lancer un programme sur tout les fichiers que l'on lui passe en paremetre. Celui-ci marche sans probleme pour un nombre de fichiers limités, mais plante lorsqu'on lui passe plus de 80 fichiers. Hors j'ai besoin de travailler sur un grand nombre de fichiers (environ 8000).
L'erreur qui apparait lorsque je passe plus de 80 fichiers est :
Windows ne parvient pas à accéder qu périphérique, au chemin d'accès ou au fichier spécifié. Vous ne disposez peut-être pas des autorisations appropriées pour avoir accès à l'élément.
D'aprés mes recherches je pense que cette erreur est du à une limitation windows. Toutefois je n'ai pas trouvé de solution pour contourner le problème. Je suis ouvert à toutes suggestions.
Ci-dessous mon code au cas où le problème serait lié à une erreur de ma part :
@echo off
SET mypath=C:\progIP
:start
if %1x == x goto end
SET STRING=%1
SET STR=%STRING:~-10%
SET ST=%STR:~0,6%
%mypath%\demo.exe "%STRING%" %mypath%\convert.txt %mypath%\_copy.txt %mypath%\graph\graph%ST%.txt
shift
goto start
:end
echo End