для / f не читает список текстовых файлов - PullRequest
0 голосов
/ 01 июня 2019

Я не могу заставить свой пакетный файл копировать только файлы, перечисленные в текстовом файле.

Внутри исходной папки находятся три файла PDF.Это apple.pdf, bat.pdf и cow.pdf.

Текстовый файл состоит из двух строк, содержащих bat.pdf в первой и cow.pdf во второй.Там нет знаков пунктуации, пробелов или чего-либо еще.

Пакет, список и две папки находятся на моем рабочем столе.

@echo off
set src=C:\Users\weasel\Desktop\source
set dest=C:\Users\weasel\Desktop\dest
set list=C:\Users\weasel\Desktop\animallist.txt
for /f %%F in (%list%) do robocopy "%src%" "%dest%" *.pdf /R:1

Я хочу, чтобы в списке были только животныескопировал, но код просто копирует все файлы .pdf, которые он может найти, как если бы там была только robocopy.Я получаю яблоко, летучую мышь и корову в папке назначения.

Мне кажется, что я испортил часть "for / f %% F in (% list%)", но на самом деле это не такЯ знаю эту кодировку, и я не могу найти в Интернете ничего такого, что могло бы помочь мне в этом.

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

2 голосов
/ 01 июня 2019

Вы не включили мета-переменную в список.*.pdf означает «любой файл с расширением .pdf».

Попробуйте вместо этого %%F*.pdf или, возможно, %%F.pdf, если ваш файл jaguar.pdf и вы хотите только этот файл.

Обратите внимание также

Синтаксис SET "var=value" (где значение может быть пустым) используется для обеспечения того, чтобы любые заданные пробелы НЕ включались в назначенное значение.

Используйте for /f "usebackq" %%F in ("%list%"), чтобы разрешитьимя файла с пробелами для обработки

Используйте for /f "delims=" %%F in (%list%), чтобы разрешить присваивать строки данных, содержащие пробелы, %%F

Используйте for /f "usebackqdelims=" %%F in ("%list%") для объединения двух

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