1
FORループで文字列を追加する際に問題があります。バッチ:FORループで文字列を追加する方法
アレイに格納されている名前ごとにサブフォルダを作成したいとします。 サブフォルダは、userによって指定された名前のフォルダに属します。例えば
、私は以下の私の配列内の名前がある場合: - フォルダを1 - フォルダ2 - フォルダ私はフォルダを持っているしたい3
:
C:\ MyFolderというフォルダ\ 1 C:¥MyFolder¥Folder 2 C:¥MyFolder¥Folder 3
前述のとおり、「MyFolder」の名前はコマンドラインでユーザーによって入力されます。ここで
は、コードは次のとおりです。
@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
ありがとうございます!私はEnableDelayedExpansionの目的を理解しておらず、 "!...!"を使用していました。私はあなたの兆候に従った私の質問の答えでコードを更新します。 –