J'ai besoin de transmettre un identifiant et un mot de passe à un fichier batch au moment de l'exécution plutôt que de les coder en dur dans le fichier.
Voici à quoi ressemble la ligne de commande :
test.cmd admin P@55w0rd > test-log.txt
Une autre astuce utile consiste à utiliser %*
pour signifier "tous". Par exemple :
echo off
set arg1=%1
set arg2=%2
shift
shift
fake-command /u %arg1% /p %arg2% %*
Lorsque vous exécutez :
test-command admin password foo bar
le fichier batch ci-dessus sera exécuté :
fake-command /u admin /p password admin password foo bar
La syntaxe est peut-être légèrement erronée, mais c'est l'idée générale.
Oui, et n'oubliez pas d'utiliser des variables comme %%1
lorsque vous utilisez if
et for
et la bande.
Si vous oubliez le double %
, alors vous substituerez des arguments de ligne de commande (éventuellement nuls) et vous recevrez des messages d'erreur plutôt déroutants.