"for / f .... do" не работает в первой строке - PullRequest
0 голосов
/ 13 июля 2020

Я использую следующий командный файл для удаления файлов с полным путем. Первая строка выходного файла - это сообщение об ошибке «Неверное имя файла, имя каталога или синтаксис метки тома». Все файлы в C: \ DELETE-ALL-FULLPATH.txt удаляются, кроме первого. Интересно, почему первая строка вызывает проблему.

@REM This script deletes files which include full path.

@if exist C:\DELETE-all-fullpath-output.txt DEL /Q c:\DELETE-all-fullpath-output.txt
@for /f "tokens=* eol=@ delims=" %%A in ( C:\DELETE-ALL-FULLPATH.txt) do (
@DEL /Q /A "%%A"
)   >> C:\DELETE-all-fullpath-output.txt 2>&1

CD /D C:\

Это первые две строки C: \ DELETE-ALL-FULLPATH.txt. Все строки имеют одинаковый формат, за исключением разных чисел. Все файлы в списке будут удалены, кроме первого.

c:\Users\administrator\documents\IMG_20190229_134600.jpg
c:\Users\administrator\documents\IMG_20191229_134202.jpg
......

введите описание изображения здесь

1 Ответ

0 голосов
/ 13 июля 2020

Попробуйте, пожалуйста.

@echo off
REM This script deletes files which include full path.
del /Q c:\DELETE-all-fullpath-output.txt>nul 2>&1
for /f "usebackq delims=" %%A in ("C:\DELETE-ALL-FULLPATH.txt") do (
    if exist "%%~A" del /Q /A "%%~A"
)>>c:\DELETE-all-fullpath-output.txt 2>&1

РЕДАКТИРОВАТЬ

После просмотра вашего файла, это действительно UTF-8 с включенной спецификацией.

введите описание изображения здесь

Откройте файл в блокноте и выберите «Сохранить как». на вкладке кодирования выберите только UTF-8, без спецификации.

...