Je rencontre des problèmes pour ajouter des chaînes dans la boucle FOR.Batch: comment ajouter une chaîne dans la boucle FOR
Je souhaite créer des sous-dossiers pour chaque nom stocké dans un tableau. Les sous-dossiers appartiennent à un dossier avec un nom donné par l'utilisateur.
Par exemple, si je les noms suivants dans mon tableau: - Dossier 1 - Dossier 2 - Dossier 3
Je veux avoir les dossiers:
C: \ MonDossier \ Dossier 1 C: \ MonDossier \ dossier 2 C: \ MonDossier \ dossier 3
Comme précédent dit, le nom de "MyFolder" est saisi par l'utilisateur dans la ligne de commande.
Voici le code:
@echo off
@break off
@title Generate Billing Subfolders
@color 0a
@cls
setlocal EnableDelayedExpansion
SET "batch_path=%~dp0"
SET "first_folder=01. Folder1"
SET "second_folder=02. Folder2"
SET "third_folder=03. Folder3"
:: Create the new Working Data folder
SET /p new_folder_name= Enter Directory Name:
SET "full_path=%batch_path%%new_folder_name%"
ECHO Working...
IF NOT EXIST ("%full_path%") (
MKDIR %new_folder_name%
IF "!errorlevel!" EQU "0" (
ECHO Folder created successfully.
) ELSE (
ECHO Error while creating folder.
)
) ELSE (
ECHO Folder already exists.
)
SET "folders_list="%first_folder%" "%second_folder%" "%third_folder%""
FOR %%f in (%folders_list%) DO (
:: Displays the folder name in array correctly
ECHO %%f
:: Displays ECHO is off. Why?
CALL SET "updated_full_path=%full_path%\%%f"
ECHO %updated_full_path%
PAUSE
)
PAUSE
EXIT
Merci! Je ne comprenais pas le but de EnableDelayedExpansion et en utilisant "! ...!". Je mettrai à jour le code avec la réponse de ma question en suivant vos indications. –