逐行循环遍历文本文件内容,并使用批处理文件对每行进行操作

时间:2017-06-20 06:58:51

标签: batch-file

我想逐行阅读文本文件内容第一行必须阅读并做一些操作,第二行使用批处理文件进行操作等。请给我一些想法。

例如:

第一行读取并更改目录对该文件夹的操作。 第二行并更改目录对该文件夹的操作。 等等

for /F "delims=" %%i in (Text.txt) do (  
  set Z=%%i
  goto BREAK1
)
:BREAK1(
chdir /d %Z%
...do operation...)

使用上面的代码我能够继续操作第一行我无法做任何事情。请给我一些想法。

2 个答案:

答案 0 :(得分:0)

首先你需要启用:

SETLOCAL EnableExtensions EnableDelayedExpansion

您的固定示例(因为您并非完全具体,我也使用通用名称):

for /F "delims=" %%i in (Text.txt) do (
    REM to access the variable within the for cycle use !temp_variable!
    SET temp_variable=%%i

    REM Changing directory
    pushd "<directory>"
    <your operation>
    REM returning back
    popd
)

答案 1 :(得分:0)

错误。使用call代替goto(打破你的循环):

@echo off
for /F "delims=" %%i in ('dir /b /ad') do (  
  set Z=%%i
  call :BREAK1
)
goto :eof

:BREAK1 (
echo chdir /d %Z%
echo ...do operation...)

我可以建议对您的代码进行一些细微更改吗?:

@echo off
for /F "delims=" %%i in (Text.txt) do call :BREAK1 "%%~i" 
goto :eof
:BREAK1 
pushd "%~1"
echo ...do operation in: %cd%
REM insert here the code to be done in every folder
popd
goto :eof