Récupérer les paramètres passés au script
Plusieurs solution sont possible pour récupérer les paramètres passés au script en voici une.
Pour découper en 4 variables:
- premier paramètre = 1e variable
- deuxieme paramètre = 2e variable
- troisième paramètre = 3e variable
- le reste = 4e variable
pour stocker les x paramètres (le reste) dans la variable prog
REM tokens est tous les parametres passés au script set var1=%1 set var2=%2 set va3=%3 for /F "tokens=1,2,3* delims= " %%a IN ('echo %*') do set var4=%%d
Example d'usage:
a.bat
REM ici %1 est le pwd pour executer le SFX, le reste sont les parametres à passer au SFX %~dp0\b.exe -pMonMotDePasse 1 2 3 4 5
b.bat
@echo off REM Recup des paramètres dans 4 variables for /F "tokens=1,2,3* delims= " %%a IN ('echo %*') do set reste=%%d REM affiche les 4 paramètres récupérés call :message "%1,%2,%3,%reste%" goto :eof :message REM Pour afficher les messages echo start /D c:\ /B powershell -Command "& {Add-Type -AssemblyName PresentationCore,PresentationFramework;[System.Windows.MessageBox]::Show('%~1')}">%TMP%\msg.bat echo del /Q %%~f0>>%TMP%\msg.bat start /D c:\ /B powershell -Command "& {Start-Process -WindowStyle Hidden cmd.exe -ArgumentList \"/C %TMP%\msg.bat\"}" exit /b.
Si ce script (b.bat) est intégré et auto-exécuté dans un SFX 7Zip protégé par un mot de passe (b.exe) il audra fournir le mot de passe pour l'exécuter.
On peut lancer le SFX (b.exe) en ligne de commande ou depuis un script (a.bat) mais le premier paramètre doit être le mot de passe (option -p) .
Le premier paramètre récupéré par le script est en 2e position soit ici param1.
Dernière modification : le 2023/05/24