我想生成一个包含给定目录的目录结构的文件,作为相对路径。目前我有以下批处理文件:
@echo off
pushd "C:\TEST"
dir /AD /B /ON /S
popd
目前的输出是:
C:\TEST\one
C:\TEST\three
C:\TEST\two
C:\TEST\one\a
C:\TEST\three\d
C:\TEST\three\e
C:\TEST\three\f
C:\TEST\two\b
C:\TEST\two\c
我希望输出为:
one
three
two
one\a
three\d
three\e
three\f
two\b
two\c
编辑:这个问题不重复。另一个问题是专门显示文件,现在我需要专门获取目录(不与文件混合)。
答案 0 :(得分:1)
@echo OFF
SETLOCAL enabledelayedexpansion
SET "targetdir=c:\106x"
pushd "%targetdir%"
FOR /f "delims=" %%a IN ('dir /AD /B /ON /S') DO (SET "dirname=%%a"&ECHO(!dirname:%targetdir%\=!)
popd
GOTO :EOF
如果目录名不包含!
目录名应用于%%a
并转移到dirname
进行操作。然后将目标目录名+结束\
替换为 nothing 以供显示。