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

set/an=1SETLOCALEnableDelayedExpansionfor/f"delims="%%iin('dir/ad/b"D:\"')do(echo%%i>... 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_数字 的变量。
展开
 我来答
yyykkkyyyy
推荐于2017-11-26 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3266万
展开全部
1 其实另保存为"数组"变量是没必要的,要作什么直接在for循环内写命令就能办到的。
2 所列代码已将文件夹名保存到"数组"变量中了,但由于set array_!n! = %%i 这句等号前有空格,数组变量名其实在每个之后就也要带等量空格才匹配,而等号后有空格则所赋的文件夹名每个前也带了空格,因此应该去掉此句等号前后的空格
3 echo %array_!n!%这句是不合格的,要写成call echo %%array_!n!%%
4 针对第2条修改后,后一个for命令就能正常显示了,但"数组"起止值不对,各扩大了1个的范围
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式