如何使用批处理或cmd将文件夹内的文件夹路径导出到txt

如何使用批处理或cmd将文件夹内的文件夹路径导出到txt

我有一个文件夹,其中包含文件夹 root/sound/weapon/ak47、root/sound/weapon/m1。root/sound/weapon/m4a1 等。ak47、m1、m4a1 文件夹位于 root/sound/weapon 中。

我想用cmd将这些路径导出到.txt。

例如:

root/sound/weapon/ak47
root/sound/weapon/m4a1
root/sound/weapon/m1

我知道DIR root\sound\weapons /B /O >Names.txt将名称 ak47、m1、m4a1 导出到 .txt 但我想不出如何获取路径。

答案1

添加/s参数将在列表中包含子目录(您可能不想要),但副作用是它还会显示所有文件的完整路径(您想要的):

因此,尝试类似的事情DIR root\sound\weapons /B /S >Names.txt

另一种方法(不包括子文件夹)是创建一个批处理文件并使用For。 就像是:

@echo off
if exist files.txt del files.txt
for /f %%a in ('dir %1 /b') do @echo %1\%%a >> files.txt

运行批处理文件并提供您想要的 DIR 路径,例如:myBatch.bat c:\Path

答案2

我想用 cmd 将这些路径导出到 .txt

笔记:

  • 在 Windows 上,路径分隔符\不是/

cmdshell中

如果您只想要路径:

for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~pnxi >> Names.txt

例子:

F:\test>for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~pnxi >> Names.txt

F:\test>type Names.txt
\test\root\sound\weapon\ak47
\test\root\sound\weapon\m1
\test\root\sound\weapon\m4a1

如果您也想要驱动器,那么使用:

for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~fi >> Names.txt

例子:

F:\test>for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~fi >> Names.txt

F:\test>type Names.txt
F:\test\root\sound\weapon\ak47
F:\test\root\sound\weapon\m1
F:\test\root\sound\weapon\m4a1

在批处理文件中

%用。。。来代替%%

for /f %%i in ('dir /a:d root\sound\weapon /b /s') do @echo %%~pnxi >> Names.txt

或者:

for /f %%i in ('dir /a:d root\sound\weapon /b /s') do @echo %%~fi >> Names.txt

进一步阅读

  • Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
  • 目录- 显示文件和子文件夹的列表。
  • 对于/f- 循环命令以执行另一个命令的结果。
  • 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。

相关内容