如何在FOR / F循环下获得提示用户输入(set / p)

时间:2016-10-05 06:32:40

标签: windows batch-file cmd

我需要存储用户输入并存储在文本文件中,而在for / f循环序列下...

text1.txt(数据)

Title1
Title2
Title3

代码:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "delims=" %%a in (text1.txt) do (
    echo Group Name: %%a
    set /p d1="Enter genre:"
    echo.
    echo %%a
    echo %d1%
    echo %d1%>>text2.txt
)
:end

但%d1%的返回输出为“ECHO off”,任何人都可以帮我解决这个问题。

text2.txt

Anime
Horror
Comedy

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (text1.txt) do (
    echo Group Name: %%a
    set /p d1="Enter genre: "
    echo.
    echo %%a
    echo !d1!
    echo !d1!>>text2.txt
)

enabledelayedexpansion只是工作的一半。您仍然需要使用!...!代替%...%来围绕循环内设置的变量。