有什么方法可以绕过dir /b /s
在文件中使用命令时显示文件路径吗?
目前,当我运行它时dir /b /s C:\WinPE_amd64 >dir.txt
,它会输出如下内容:
C:\WinPE_amd64\file.txt
C:\WinPE_amd64\secondfile.txt
C:\WinPE_amd64\Folder\AnotherFile.txt
我想要的是这样的:
file.txt
secondfile.txt
AnotherFile.txt
答案1
使用 a 解析目录输出for /f
并使用~nx
修饰符仅返回名称+扩展名
在命令行上:
(for /f "delims=" %A in ('dir /B/S "C:\WinPE_amd64"') do @Echo=%~nxA)>dir.txt
在批处理中,将元变量的百分号加倍
@Echo off
( for /f "delims=" %%A in ('dir /B/S "C:\WinPE_amd64"') do Echo=%%~nxA
) >dir.txt
这是一个格式偏好的问题(或者为了避免行过长)
@Echo off
( for /f "delims=" %%A in (
'dir /B/S "C:\WinPE_amd64"'
) do Echo=%%~nxA
) >dir.txt
编辑一个可能更快的替代方案是for /r
(For /r "C:\WinPE_amd64" %A in (*) Do @Echo=%~nxA)>dir.txt
包装 powershell 命令的另一种方法
powershell -nop -c "(dir 'C:\WinPE_amd64' -r -file).Name" >dir.txt