J'ai besoin de générer aléatoirement un certain nombre de valeurs dans un fichier de traitement par lots qui partagent une certaine plage et les concaténent ensemble en les séparant par des espaces. Tout fonctionne sauf pour concaténer les nombres séparés par des espaces. Le problème problématique spécifique est la concaténation avec les nombres avec des espaces, comment puis-je m'y prendre?Concaténation de nombres séparés par des espaces dans un fichier de commandes
La partie relevent suit:
::Assume %minA%, %maxA% and %randB% are defined correctly.
set /a randA=(%random% %% %maxA%) + %minA%
set agent_counter=0
:start_agent_loop
if %agent_counter% equ %randA% goto end
set /a randApos=(%random% %% %randB%) + 1
::supposedly (if I recall), simply having a space between %agent_starts%
::and %randApos% should do the trick, this doesn't seem to be the case.
set agent_starts = %agent_starts% %randApos%
set /a agent_counter +=1
goto start_agent_loop
:end
echo -A %agent_starts%
Idéalement, cela devrait imprimer quelque chose comme ...
C:\Path\>genparams.bat
-A 2 4 5
Actuellement je reçois
-A
Merci pour votre réponse rapide! En effet, tout ce que je devais faire était de supprimer les espaces de sorte qu'ils ressemblent à votre quatrième ligne de script et cela a fonctionné comme un charme! – Geoff
En outre, j'ai modifié le fichier avec votre première recommandation (en supprimant les signes% superflus) et il a continué à fonctionner, mais maintenant il semble plus propre. :) Comme vous l'avez deviné, j'ai dû les garder pour% aléatoire%. – Geoff
Sweet - heureux d'aider. Je traitais un problème de type "spaces" séparé dans un script batch aujourd'hui, alors j'ai ressenti votre douleur :) –