批处理循环把文件内容赋值给不同变量的问题?
更新时间:2021-11-05 03:12:59 • 作者:MAX •阅读 8018
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命令是循环命令,如有多个文件,最终赋给变量的是最后一个文件名,其实赋给变量无非是进一步处理,可以不必另赋一变量直接在循环内处理就是了