Réaliser un batch...
PAPY
-
PAPYELY Messages postés 4 Statut Membre -
PAPYELY Messages postés 4 Statut Membre -
Bonjour, à tous et à chacun.
Dans le but de réaliser des sauvegardes croisées entre 2, 3 ou 4 clés USB dont les volumes sont Y, Z, V et W, je tente de réaliser un batch qui me permette d'y parvenir.
Jusque là tout va bien et en fonction des clés présentes j'obtiens - pour l'exemple - la variable <VAR1> = "YZVW". S'ensuit un choix <VAR2>, disons =3. Je m'épuise vainement à trouver une formule qui fonctionne, dans le genre:
<VAR3> = set /a %VAR1:~%VAR2%,1% . . . patatras.
Alors que <VAR1>:~3,1% répond bien "V".
D'avance merci à celui qui sait et qui voudra bien partager
PAPY
La connaissance est l'unique bien dont personne ne peut te dépouiller.
Dans le but de réaliser des sauvegardes croisées entre 2, 3 ou 4 clés USB dont les volumes sont Y, Z, V et W, je tente de réaliser un batch qui me permette d'y parvenir.
Jusque là tout va bien et en fonction des clés présentes j'obtiens - pour l'exemple - la variable <VAR1> = "YZVW". S'ensuit un choix <VAR2>, disons =3. Je m'épuise vainement à trouver une formule qui fonctionne, dans le genre:
<VAR3> = set /a %VAR1:~%VAR2%,1% . . . patatras.
Alors que <VAR1>:~3,1% répond bien "V".
D'avance merci à celui qui sait et qui voudra bien partager
PAPY
La connaissance est l'unique bien dont personne ne peut te dépouiller.
5 réponses
-
hello
ce n'est pas clair, quel doit être le résultat ? -
Merci DUBCEK de vous intéresser à mon problème.
Soit, dans une variable <VAR1> les 2, 3 ou 4 directories des clés usb susceptibles d'être utilisées, telles que Y, Z, V, W . Mon exemple:
Je désigne la clé V en troisième position (CHOICE 1,2,3,4)
Si j'écris <VAR3> = set /a %VAR1:~3,1% la réponse est V. Parfait.
Si <VAR2>, à l'issue du choix, est 3, je pensais naïvement pouvoir obtenir la réponse "V" en écrivant <VAR3> = set /a %VAR1:~%VAR2%,1%.
RIEN ! .
Merci de votre aide et bien sincères salutations
PAPY -
la 1ère position est à 0
C:> set var1=yzvw
C:> set var3=%var1:~2,1%
C:> echo %var3%
v
C:> set var4=%var1:~3,1%
C:> echo %var4%
w-
DUBCEK RE-merci,
Je mesure la difficulté que peux être la vôtre d'avoir affaire à des débutants qui ne s'expriment pas clairement:
la 1ère position est à 0 Ok,
C:> set var1=yzvw
C:> set var3=%var1:~2,1%
C:> echo %var3%
v
C:> set var4=%var1:~3,1%
C:> echo %var4%
w
C'est justement ces positions 2, 3 ou . . que je souhaiterais pouvoir remplacer par la <VAR2>. Ce qui, dans ma syntaxe actuelle, n'est pas du tout apprécié par le système.
Avec mes bien sincères salutation
PAPY
La connaissance est l'unique bien dont personne ne peut te dépouiller.
-
-
dans ce genre ?
C:> bb
choix 1 Y
choix 2 Z
choix 3 V
choix 4 W
C:> type bb.bat
@echo off
setlocal enabledelayedexpansion
set VAR1=YZVW
for /L %%a in (0,1,3) do (
set /a c=%%a+1
echo choix !c! !VAR1:~%%a,1!
) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
DUBCEK bonsoir,
Je suis enfin parvenu à un résultat dont je vous fais part:
set var1="YZVW" (les différentes clés présentes sur le système)
set var2=3 (désignation de la clé en <V>
set Var3=1
echo set Var4=%%Var1%:~%Var2%,%Var3%%% > %TEMP%\TMP.BAT
call %temp%\tmp
echo La clé est reconnue en VOLUME %Var4% extraite de %Var1%
UNE lettre (Var3) càd la TROISIEME (Var2) a été extraite de la CHAINE (Var1)
Merci à vous, merci à CCM et au plaisir de pouvoir être moi-même, utile.
PAPY
La connaissance est l'unique bien dont personne ne peut te dépouiller.