标题: [文件操作] 批处理如何列举当前文件夹和下一级文件夹? [打印本页]
作者: wosliming 时间: 2012-9-16 10:04 标题: 批处理如何列举当前文件夹和下一级文件夹?
需要列举当前文件夹和当前文件夹下一级文件夹符合条件的文件,
现在可以做到列举当前文件夹的文件- for /f "delims=" %%a in ('dir /a-d /b ful*.*') do (
- set/a n+=1&set ".!n!=%%a"&echo,!n!, %%a^ (%%~ta^)
- )
复制代码
怎么列举下一级呢??
作者: apang 时间: 2012-9-16 11:46
本帖最后由 apang 于 2012-9-16 15:08 编辑
只列举当前目录和当前目录的下一级子目录:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a-d /b /s ful*.*') do (
- set "p=%%~dpa"
- for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
- if "!p!"=="" (
- set/a n+=1&set ".!n!=%%~nxa"&echo,!n!, %%~nxa ^(%%~ta^)
- )
- )
- pause
复制代码
作者: wosliming 时间: 2012-9-17 09:48
回复 2# apang
如果有重名的怎么办??怎么区分?如何添加路径显示呢??
作者: apang 时间: 2012-9-17 11:49
回复 3# wosliming
第6行,%%~nxa改成%%a
作者: wosliming 时间: 2012-9-17 15:35
本帖最后由 wosliming 于 2012-9-17 16:30 编辑
回复 4# apang
再请教一个问题,获得当前和下一级目录的文件后, 想实现的是在得到的文件列表中选择循环执行,so,- for /f "delims=" %%a in ('dir /a-d /b /s *.fan') do (
- set "p=%%~dpa"
- for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
- if "!p!"=="" (
- set/a n+=1&set ".!n!=%%~nxa"
- echo,!n!, %%a&echo %%a>>temp.txt ::将得到的文件列表放到temp中
- )
- )
- set/p input=Please input the NO.order for which one you want to Run:
- for /f %%i in (temp.txt) do (
- set/a m+=1&set .!m!=%%~i
- ) ::从temp中获取文件,执行上面input的输入的循环
- for %%i in (%input%) do if defined .%%i (
- echo !.%%i!
复制代码
这样的再选择循环,有没有更好的方法??只是实现在得到的文件中选择要执行的,比如 1 2 1 2 1 3…………这样,不想引入一个temp的临时文件
作者: apang 时间: 2012-9-17 17:54
本帖最后由 apang 于 2012-9-17 17:55 编辑
回复 5# wosliming - @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a-d /b /s *.fan') do (
- set "p=%%~dpa"
- for %%b in ("\!p:%~dp0=!..") do set "p=%%~nxb"
- if "!p!"=="" (
- set/a n+=1&set ".!n!=%%~sa"
- echo,!n!, %%~sa
- )
- )
- set/p input=Please input the NO.order:
- for %%i in (%input%) do if defined .%%i echo,!.%%i!
- pause
复制代码
作者: wosliming 时间: 2012-9-17 18:46
回复 6# apang
你是"pznpt"?????
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |