us0r
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Если в строке нет двойного слеша, то что возвращается в %%a? Ничего? Т.е. там пусто? Если там пусто, то при сравнении с NUL или "" оно разве не должно выполнять условие, где %%a==NUL- истина? Или оно что- то возвращает, но что оно возвращает- непонятно. Более того, если мы сделаем так: Код: @echo off cls setlocal echo %~dp0 for /f "tokens=* delims=*" %%a in ('echo %~dp0 ^| find /i ^"^\^\^"') do ( echo Here is %%a value if "%%a"==NUL (echo Local ) else (echo Network) ) endlocal pause | То тут мы получим вывод "echo Here is %%a value" только в случае запуска по сети (ну или в тексте найдётся двойной слеш, не суть важно, кмк), хотя, казалось бы, сравнение идёт дальше. Т.е. мне непонятен этот момент. Поковырявшись ещё, мне понятно только одно: цикл, видимо, завершается (аварийно?), если в %%a вернулось пустое(?) значение. Видимо, баг какой- то. А вдруг мне понадобится, в другом тексте, проверять наличие пустой строки, и делать что- то если найдётся. Или пробегаясь по файлу делать что- то, если что- то нашлось или не нашлось. Fenrizz Всё так. Вы правы. For здесь просто потому, что я привык так гонять вывод, т.к. у меня много разного бывает и, в каком- то смысле, это уже шаблон. Как умею, так сказать. lexapass Да, я с этим for уже и забывать начал, что можно проще. |