Назад | Перейти на главную страницу

Требуются относительные пути из списка каталогов пакетного сценария

У меня есть простой пакетный сценарий, который рекурсивно просматривает все файлы и папки в каталоге и записывает список файлов в текстовый файл. Сейчас это выглядит так:

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\ папку, поэтому я не хочу видеть до этого момента.

Возможно ли сделать эти две вещи, и если да, может ли кто-нибудь помочь с ними?

Вы можете взять unxutils Suite, поместите find.exe в свой начальный каталог, затем запустите его примерно так:

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

Просто мой 2цт.

dir /b /s /a-d доставит вам только файлы. Я думаю, что для относительных путей вам понадобится больше работы, чем просто простой командный файл, например вызовите некоторый vbscript, чтобы (1) получить текущий каталог, (2) открыть текстовый файл, (3) выполнить поиск и заменить текстовый файл и (4) сохранить результат обратно.