Что не так с этой пакетной обработкой содержимого текстового файла - PullRequest
0 голосов
/ 07 января 2019

Так я всегда помнил, как обрабатывал СОДЕРЖАНИЕ файла построчно в пакетном файле (резервное копирование с помощью веб-поиска):

for /F "delims=" %%N in ("del files.txt") do del "%%N"

Теперь удаляет "del files.txt", а @echo %%N дает "del files.txt"

.

Имеет ли это какое-то отношение к имени, которое нужно заключать в кавычки из-за пробела? Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Пожалуйста, не обвиняйте меня в том, что я не читаю помощь.

  1. для /? (первое, что я сделал) дает:

    FOR / F ["опции"]% переменная IN (набор файлов) DO команда [параметры-команды]
    FOR / F ["options"]% переменная IN ('строка') DO команда [command-параметры] ЗАМЕЧАТЬ, ЧТО 'string' ВХОДИТ ОДНО ЦИТАТЫ !!!
    FOR / F ["опции"]% переменная IN (команда) DO команда [команда-параметры]

потому что я просто потерял строку «if usebackq ...», потому что она просто потерялась, совпадая со строкой «нажми любую клавишу ...» в окне моей командной строки, потому что она, к сожалению, имела размер, к сожалению (и все еще не показывает набор файлов в стандартных кавычках).

Я спрашивал, почему кавычки не будут использоваться в (набор файлов), когда они требуются для пробелов и используются в (набор файлов) без / F (то есть для \% f в ("c \: путь w spc \ *. txt ") do ...)

  1. Я использовал этот точный синтаксис в других рабочих пакетных файлах. хотя я и проверял в каждом случае,% 1 или переменная окружения находились в (), что, по-видимому, определило способ обращения с кавычками.
  2. # 1 результат поиска Google: ss64.com / nt / for_f.html , который, из-за моего разочарования, я неправильно прочитал usebackq в обратном порядке и попытался `потому что он продолжал говорить

"Символ обратной кавычки" находится чуть ниже клавиши ESC на большинстве клавиатуры "

, указывая мне, что я должен был использовать это (один или два раза) в качестве кавычек, поскольку мне кажется рациональным, если я даю указание использовать этот символ.

Я даю это разъяснение на случай, если оно поможет другим, испытывающим мое разочарование.

Те, кто «оценил меня» за то, что я считаю законным заблуждением, тем самым также мешают мне задать другой вопрос в абсолютно не связанной области, и я был бы признателен, если бы они пересмотрели. Я, конечно, усвоил урок о неудачной серии событий.

Я понимаю причины, лежащие в основе политики, но я очень расстроен, что 1 раз за годы, когда меня критикуют, просто за невезение, ИМХО, вопрос должен оштрафовать меня, по-видимому, на 4 или 5 дней.

(Это также сбивает с толку, так как в сообщении говорится

Прошло 2 дня с тех пор, как вы задали свой последний вопрос. Мы просим вас подождать 2 дня, прежде чем спрашивать снова. Используйте это время, чтобы вернуться к своим предыдущим вопросам, редактируя их, чтобы решить любые проблемы, на которые люди указали в комментариях.

Означает ли это 2 больше дней или два, которые я ждал?)

Так что я думаю, если люди захотят наброситься на меня за этот протест, сколько еще дней это может стоить мне?

И еще Спасибо! на двойной сигнал за полезный ответ, даже если это не было полное объяснение.

Ну, вернемся к штрафной ...

0 голосов
/ 07 января 2019

("string") используется для разбора строк. ("filename") может использоваться с usebackq. Кажется, вы запутали их в своем поиске. Итак, вы можете написать:

for /f "usebackq delims=" %%N IN ("del files.txt") do whatever you want.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...