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

标签 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”,谁能帮我解决这个问题。

文本2.txt

Anime
Horror
Comedy

如果您能提供任何帮助,我将不胜感激。

最佳答案

@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 只是完成了一半的工作。您仍然必须使用 !...! 而不是 %...% 将循环内设置的变量包围起来。

关于windows - 如何在 FOR/F 循环下获取提示用户输入(set/p),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866910/

相关文章:

c++ - 好坏 : Calling destructor in constructor

windows - 批处理文件,每 1 分钟执行一次命令

windows - 如何使用批处理脚本将一些文件从一个目录移动到另一个目录?

php - Laravel 迁移失败

windows - 如何在 Windows 下的 cmd 窗口中显示日文汉字?

c++ - qt 5.2串口写问题与windows 7

windows - Anaconda python3.5 windows gdal安装

macros - Word 2010/m 从批处理文件切换

powershell - 如何打开git文件中修改的内容以在sublime中进行编辑

windows - 通过批处理文件将参数(目录名)从 MATLAB 传递到 WinSCP 脚本