标题: [文件操作] [已解决]批处理如何提取最底层文件夹名称到文本? [打印本页]
作者: a6236130 时间: 2023-2-1 22:30 标题: [已解决]批处理如何提取最底层文件夹名称到文本?
本帖最后由 a6236130 于 2023-2-2 21:18 编辑
比如A是主文件夹,批处理在A里面,则提取当前目录下所有子文件夹里最底层文件夹的名称到文本txt中
A/A1/BBB/CCC、
A/A2/BBB/CCC/DDD,
A/A3/BBB
谢谢!
作者: 77七 时间: 2023-2-2 00:47
本帖最后由 77七 于 2023-2-2 00:49 编辑
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i"
- set n=
- for /f "delims=" %%a in ('dir /b /s /ad ^| sort /r') do (
- if not defined n (
- echo %%~na
- set n=1
- )
- )
- popd
- )>>名称.txt
- pause
复制代码
这样可以吗?
作者: hfxiang 时间: 2023-2-2 09:08
回复 1# a6236130 - @echo off
- rem 保存为ANSI编码格式
- setlocal enableDelayedExpansion
- cd /d "%~dp0"
- set A=%~f0
- (
- for /f "delims=" %%a in ('dir /b/s/ad^|sort/r') do (
- if "!A!" NEQ "%%~fa\" echo;%%~na
- set A=%%~dpa
- )
- )>dir_name.txt
- endlocal
复制代码
作者: qixiaobin0715 时间: 2023-2-2 09:27
- @echo off
- for /f "delims=" %%a in ('dir /s /b /ad') do (
- dir /b /ad "%%a"|findstr .>nul 2>nul
- if errorlevel 1 echo,%%a
- )
- pause
复制代码
作者: terse 时间: 2023-2-2 11:24
- @echo off
- >new_txt.txt (for /f "delims=" %%i in ('dir /b /ad') do (
- call :getfolder "%%~i" "d"
- call echo %%d%%
- ))
- pause&exit
- :getfolder
- (for /f "delims=" %%a in ('dir /ad/b "%~1\"') do call :getfolder "%~1\%%a" %2)||set "%~2=%~1"&exit /b
复制代码
作者: WHY 时间: 2023-2-2 11:33
- @echo off
- for /d /r "%~dp0" %%i in (*) do (
- set "flag="
- for /d %%j in ("%%~i\*") do set "flag=1"
- if not defined flag echo;%%i
- )
- pause
复制代码
作者: WHY 时间: 2023-2-2 11:37
- PowerShell "dir -Literal '%~dp0' -Recurse -Dir | ?{!$_.GetDirectories().Count} | forEach{$_.FullName}"
复制代码
作者: aloha20200628 时间: 2023-2-2 13:50
- @echo off
- (for /f "delims=" %%d in ('dir /b/s/ad') do (
- cd /d "%%~d"
- dir /b/ad|findstr ".*">nul||echo,%%d
- ))>"末级目录列表.txt"
复制代码
作者: a6236130 时间: 2023-2-2 21:18
感谢各位大哥!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |