[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理取出目标目录中所有相关文件名称,并放在系列变量里备用

目的:取出目标目录中所有相关文件名称,并放在系列变量里备用

如目录中真实有:
a1.bsp
a2.bsp
a3.bsp
想将文件名称放在对应的变量里:
如:
m1=a1.bsp
m2=a2.bsp
m3=a3.bsp

前提是不知道有几个文件,不知道文件名称分别是什么,通过自动赋值变量,罗列显示,并待进一步处理备用

尝试如下:
  1. @echo off
  2. color 0A
  3. dir /b .\csgo\maps\workshop\*.bsp > 0_map_workshop_name.txt
  4. echo.
  5. set /A n=1
  6. for /f %%i in (0_map_workshop_name.txt) do (
  7. echo %%i
  8. set m%n%=%%i
  9. echo m%n%=%mn%
  10. set /A n+=1
  11. echo n=%n%
  12. )
  13. echo.
  14. echo n=%n%
  15. echo.
  16. echo 按任意键退出…… & pause > nul
复制代码
显示结果类似如下:
  1. a1.bsp
  2. m1=
  3. n=1
  4. a2.bsp
  5. m1=
  6. n=1
  7. a3.bsp
  8. m1=
  9. n=1
  10. n=3
  11. 按任意键退出……
复制代码
很困惑啊,很困惑,请各位指点迷津!!!

【已解决】答案在4楼
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 5# /zhqsystem/zhq

衷心感谢!!!

TOP

回复 3# kevinzhy
虽然以解决,但是不得不告诉你,我没写变量延迟,常用的东西我一般不写,只写主要部分
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

已解决!!!
  1. :: 读取文本文件每一行,并赋值系列变量
  2. @echo off & setlocal EnableDelayedExpansion
  3. color 0A
  4. cls
  5. :: mode con lines=36
  6. dir /b /-d .\csgo\maps\workshop\*.bsp > 0_map_workshop_name.txt
  7. :: 读取文档,赋值变量
  8. set j=0
  9. for /f "usebackq delims==. tokens=1" %%i in (0_map_workshop_name.txt) do (
  10. set /a j+=1
  11. set con!j!=%%i
  12. call set m!j!=%%con!j!%%
  13. )
  14. ::echo.
  15. ::echo j = !j!
  16. ::echo.
  17. :: 遍历变量,列表显示
  18. set n=0
  19. :looplist
  20. if !n! equ !j! goto eof
  21. set /a n+=1
  22. if !n! lss 10 (
  23. echo     !n!    !m%n%!
  24. ) else (
  25. echo    !n!    !m%n%!
  26. )
  27. goto looplist
  28. :eof
  29. echo.
  30. echo    按任意键退出…… & pause > nul
复制代码

TOP

回复 2# /zhqsystem/zhq

不懂,复制运行了一遍,也没什么结果

TOP

for /f "delims=" %%i in ('dir/a-d/s/b ".\*.*"')do if /i not "%%~fi"=="%~f0" (
set "#=%%~ni"
for %%n in (q w e r t y u i o p a d f g h j k l z x c v b n m)do set "#=!#:%%n=!"
set "\m!#!=%%~nxi"
)
for /f "delims=\=" %%i in ('set \')do echo,%%i=!\%%i!
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

返回列表