使用相对路径显示目录结构

时间:2015-05-11 18:52:13

标签: windows batch-file

我想生成一个包含给定目录的目录结构的文件,作为相对路径。目前我有以下批处理文件:

@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

编辑:这个问题不重复。另一个问题是专门显示文件,现在我需要专门获取目录(不与文件混合)。

1 个答案:

答案 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 以供显示。