批处理循环把文件内容赋值给不同变量的问题?

6527℃ MAX

批处理循环把文件内容赋值给不同变量的问题?

cmd命令中的变量赋值问题

这是因为批处理的预处理机制照成的。

1

2

3

批处理预处1653理的过程:

1.将seta=4读入内容,发版现set命令,权将a赋值为4

2.接着预读seta=5 & echo%a%,发现%a%,将%a%直接扩展,也就是替换成上面的a=4,然后才会运行命令set命名,将a赋值5,

1

你需要开启延迟变量,让变量知道变量已经变化了。方法:

1

2

3

4

@echooff&setlocal enabledelayedexpansion

seta=4

seta=5 & echo%a%

pause

如何用批处理读取一个文本文档内的所有内容并赋值到一个变量??

及时采纳回答

批处理文件如何根据文件内容执行不同命令

@echo off

pushd "c:\date\"

for /f "delims=" %%i in (config.txt) do (

if "%%i"=="abc" copy d:\1.txt c:\date

if "%%i"=="edf" copy d:\1.txt c:\date

)

echo ok!!

pasue

exit

批处理获取指定后缀名的文件名

for %%i in ("%~dp0*.dod") do set fn=%%~nxi

这样符合条件的文件名就赋给变量fn了,for命令是循环命令,如有多个文件,最终赋给变量的是最后一个文件名,其实赋给变量无非是进一步处理,可以不必另赋一变量直接在循环内处理就是了