此问题已在此处有答案:
Variables are not behaving as expected(1个答案)
3天前关闭。
我会继续制作脚本来检查文件夹中的文件数量。为此,我将文件夹存储在一个数组中,如下所示:
set myArray[0]="C:\testFolder\test1\"
set myArray[1]="C:\testFolder\test1\"
为此,我启动了一个变量来计算文件的数量。
set /a filesCount=0
然后我创建循环来遍历数组
for %%v in (0, 1, 1) do (
for /r %myArray[%v%]% %%i in (*.*) do (
set filesCount+=1
)
echo %filesCount%
)
在我的第一个文件夹中,我有1个文件,但程序系统地为变量filesCount返回0。我希望它显示我的第一个文件夹和0为第二个2。
我也尝试这个:
for %%v in (0, 1, 1) do (
for /r !myArray[%v%]! %%i in (*.*) do (
set filesCount+=1
)
echo %filesCount%
)
还有这个
for %%v in (0, 1, 1) do (
for /r %myArray[%%v]% %%i in (*.*) do (
set filesCount+=1
)
echo %filesCount%
)
1条答案
按热度按时间flvlnr441#
请注意,我已经更改了目录名以适应我的系统。
pushd
更改到指定目录;popd
返回到执行匹配pushd
时的当前目录。请注意,
delayedexpansion
语法(!var!
)用于变量在循环内更改的情况,并强制在使用值之前对表达式myArray[%%v]
进行求值。set /a
始终使用变量的run-time
值。