Создать и сохранить список файлов определенного типа в подпапках - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть пакетный файл, в котором перечислены все файлы .jpg в папке и ее подпапках.Затем он сохраняет их как list.txt в той же папке, что и пакетный файл.

for /R %%x in (*.jpg) do @echo %%~nx >> List.txt

Но вместо создания list.txt в той же папке, что и пакетный файл, я пытаюсь создать егоlist.txt в каждой папке и подпапке, поэтому list.txt будет сохранен в той же папке, что и файлы .jpg, которые он перечисляет.

Что он делает сейчас:

├── Main Folder
│   ├──batch.bat
│   ├──list.txt < All jpg's from all folders listed in here
│   ├── Image Folder
│   │   ├── 1.jpg
│   │   ├── Image Folder 2
│   │   │   ├── 2.jpg

Чего я пытаюсь достичь:

├── Main Folder
│   ├──batch.bat
│   ├── Folder
│   │   ├── 1.jpg
│   │   ├── list.txt < A list of all jpg's in folder1
│   │   ├── Folder 2
│   │   │   ├── 2.jpg
│   │   │   ├── list.txt < A list of all jpg's in folder2

Кто-нибудь знает, где я иду не так?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Если вы всегда добавляете файл list.txt, вам сначала нужно инициализировать все файлы list.txt, либо
использовать другой подход:

@Echo off
For /r /D %%A in (*) do If exist "%%~fA\*.jpg" (
    Dir /B "%%~fA\*.jpg" >"%%~fA\List.txt"
)
0 голосов
/ 20 ноября 2018

Перенаправляя в файл >> List.txt, вы фактически перенаправляете в текущий рабочий каталог (каталог, из которого вы запустили пакетный файл).

Вместо этого укажите ему использовать диск / путь токена %%~dpx:

for /R %%i in (*.jpg) do @echo %%~ni >> %%~dpiList.txt

Примечание !! Я изменил токен на %%i, поскольку x также используется в качестве расширения токена %%~xi, он просто более читабелен и выглядит менее запутанным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...