批处理获取文件名并保存至变量中

set /a n = 1
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%i in ('dir /ad /b "D:\"') do (
echo %%i>>list.txt
set array_!n! = %%i
echo array_!n!
echo %array_!n!%
set /a n=!n!+1
)

for /l %%a in (0, 1, %n%) do (
echo !array_%%a!
)
echo %array_1%

pause

问题说明:目的是获取指定文件夹中所有文件夹,并保存至 array_1~n 的变量中(由于不会用数组)
目前问题,for 循环中无法使用外部变量,导致 array_!n! 没被当作 array_数字 的变量。

第1个回答  推荐于2017-11-26
1 其实另保存为"数组"变量是没必要的,要作什么直接在内写命令就能办到的。
2 所列代码已将名保存到"数组"变量中了,但由于set array_!n! = %%i 这句等号前有空格,数组变量名其实在每个之后就也要带等量空格才匹配,而等号后有空格则所赋的文件夹名每个前也带了空格,因此应该去掉此句等号前后的空格
3 echo %array_!n!%这句是不合格的,要写成call echo %%array_!n!%%
4 针对第2条修改后,后一个for命令就能正常显示了,但"数组"起止值不对,各扩大了1个的范围本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网