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

[文件操作] 批处理如何列举当前文件夹和下一级文件夹?

需要列举当前文件夹和当前文件夹下一级文件夹符合条件的文件,
现在可以做到列举当前文件夹的文件
  1. for /f "delims=" %%a in ('dir /a-d /b ful*.*') do (
  2.   set/a n+=1&set ".!n!=%%a"&echo,!n!, %%a^    (%%~ta^)
  3. )
复制代码
怎么列举下一级呢??

本帖最后由 apang 于 2012-9-16 15:08 编辑

只列举当前目录和当前目录的下一级子目录:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /a-d /b /s ful*.*') do (
  3.   set "p=%%~dpa"
  4.   for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
  5.   if "!p!"=="" (
  6.     set/a n+=1&set ".!n!=%%~nxa"&echo,!n!, %%~nxa ^(%%~ta^)
  7.   )
  8. )
  9. pause
复制代码

TOP

回复 2# apang


    如果有重名的怎么办??怎么区分?如何添加路径显示呢??

TOP

回复 3# wosliming

第6行,%%~nxa改成%%a

TOP

本帖最后由 wosliming 于 2012-9-17 16:30 编辑

回复 4# apang


    再请教一个问题,获得当前和下一级目录的文件后, 想实现的是在得到的文件列表中选择循环执行,so,
  1. for /f "delims=" %%a in ('dir /a-d /b /s *.fan') do (
  2.   set "p=%%~dpa"
  3.   for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
  4.   if "!p!"=="" (
  5.     set/a n+=1&set ".!n!=%%~nxa"
  6.     echo,!n!, %%a&echo %%a>>temp.txt   ::将得到的文件列表放到temp中
  7.   )
  8. )
  9. set/p input=Please input the NO.order for which one you want to Run:
  10. for /f %%i in (temp.txt) do (
  11.   set/a m+=1&set .!m!=%%~i
  12. )   ::从temp中获取文件,执行上面input的输入的循环
  13. for %%i in (%input%) do if defined .%%i (
  14. echo !.%%i!
复制代码
这样的再选择循环,有没有更好的方法??只是实现在得到的文件中选择要执行的,比如 1 2 1 2 1 3…………这样,不想引入一个temp的临时文件

TOP

本帖最后由 apang 于 2012-9-17 17:55 编辑

回复 5# wosliming
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /a-d /b /s *.fan') do (
  3.   set "p=%%~dpa"
  4.   for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
  5.   if "!p!"=="" (
  6.     set/a n+=1&set ".!n!=%%~sa"
  7.     echo,!n!, %%~sa
  8.   )
  9. )
  10. set/p input=Please input the NO.order:
  11. for %%i in (%input%) do if defined .%%i echo,!.%%i!
  12. pause
复制代码

TOP

回复 6# apang


    你是"pznpt"?????

TOP

返回列表