需要批处理脚本目录列表中的相对路径

需要批处理脚本目录列表中的相对路径

我有一个简单的批处理脚本,它以递归方式查看目录中的所有文件和文件夹,并将文件清单写入文本文件。它目前看起来像这样:

dir /b/s > files.txt

/b方法不提供任何额外信息,并/s使其在子文件夹内递归。示例输出为:

C:\Users\mark\Desktop\site\site\Web
C:\Users\mark\Desktop\site\site\Web\Themes
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\images
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\style
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\images\site
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\images\site\beta.gif
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\style\site.css
C:\Users\mark\Desktop\site\site\Web\Themes\Sitev2\style\ie7.css

我想要两件事:

  1. 仅列出此列表中的文件,而不是文件和文件夹
  2. 我希望路径与批处理脚本的调用位置相关

例如,我的文件夹中有脚本,C:\Users\mark\Desktop\site\site\所以我不想看到该点。

这两件事可以做到吗?如果可以,有人可以帮忙吗?

答案1

dir /b /s /a-d只会获取文件。我认为对于相对路径,您需要做的工作比简单的批处理文件要多,例如调用一些 vbscript 来 (1) 获取当前目录,(2) 打开文本文件,(3) 在文本文件上进行搜索和替换,以及 (4) 保存结果。

答案2

您可以抓住工具套件,将 find.exe 放在你的起始目录中,然后使用以下命令启动它:

./find.exe . -type f > result.txt

这只是我的 2cts。

相关内容