Как отобразить TXT-файл со списком имен файлов в каждой папке

443
joe_sh

Допустим, у меня есть папка A и папка B. Папка A имеет файлы A1 и A2. Папка B содержит файлы B1 и B2.

Я хочу создать текстовый файл в каждой папке со списком файлов в этой папке. Поэтому создайте файл A.txt в папке A, в котором перечислены имена файлов A1 и A2 и то же самое для B

Попробовал следующее, но не сработало

for /d %%g in ("*") do ( for /r %%y in ("*.mp4") do ( echo file '%%y' ) > ./%%g/mylist.txt )  

Любая помощь приветствуется

0
Используйте `>>` для добавления в файл. Один `>` перезаписывает предыдущий контент, поэтому сохраняется только последняя запись. LotPings 6 лет назад 2
@LotPings большое спасибо. Это дало мне еще один шаг (ниже мой обновленный скрипт). Теперь проблема в том, что каждый из файлов, созданных как в папке A, так и в папке B, содержит список ВСЕХ файлов A и B. Я хочу включить только файлы A в mylist.txt, созданный в папке A, и файлы B для текстового файла в папке B. Какие-либо предложения? Еще раз спасибо! `for / d %% g in (" * ") do (` `for / r %% y in (" * .mp4 ") do (` `echo file '%% y' >> ./%%g/ mylist.txt` `)` `)` joe_sh 6 лет назад 0

3 ответа на вопрос

0
harrymc

Это очень просто сделать с помощью командной строки:

cd "\path\to\folder-A" dir /b *.mp4 > fileA.txt 

Переключатель /bвызовет список только пустых имен файлов.

Спасибо за совет, но это не то, что мне действительно нужно. это огромное количество папок, и мне нужно автоматизировать его в многократно используемом скрипте (отсюда и командный файл). Любые советы о том, как добиться этого в командном файле, приветствуются. joe_sh 6 лет назад 0
В чем проблема использования `dir` в пакетном скрипте? harrymc 6 лет назад 0
0
LotPings

Начиная с %Base%папки, этот пакет будет перебирать структуру папок и создавать, mylist.txtсодержащий все %ext%найденные файлы с префиксом fileи заключенные в одинарные кавычки.

:: Q:\Test\2018\10\27\SO_1370390.cmd @Echo off Set "Base=X:\start\path" Set "ext=.mp4"  for /R "%Base%" %%A in (.) do ( ( for %%B in ("%%~fA\*%ext%") do Echo file '%%~fB' ) >"%%~fA\mylist.txt" ) 
0
MC ND

for /d /r . %%a in (*) do >"%%a\myList.txt" dir /b "%%a" 

Для каждого каталога рекурсивно из текущего активного каталога отправьте результат простой dirкоманды указанному файлу внутри обрабатываемого каталога.