Как упоминалось в , этот отвечает на вышеупомянутый вопрос, кажется, что строки не пропускаются по умолчанию, используя for /f
в (по крайней мере) Windows XP
(Сообщество - обновите этот ответ путем тестирования приведенных ниже командных команд в вашем пакете обновления и пакета обновления Windows
). & nbsp; & nbsp; & nbsp; & nbsp; EDIT: комментарий Jeb ниже , кажется, что команда ping
, по меньшей мере, Windows XP
, является & nbsp; & nbsp; & nbsp; заставляя for /f
создавать
'вместо пустых строк (если кто-то знает, почему именно, would & nbsp; & nbsp; & nbsp; оцените это, если они могут обновить этот ответ или комментарий).
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; В качестве обходного пути кажется, что второй маркер с разделителем по умолчанию (
/ %%b
в этом примере) & nbsp; & nbsp; & nbsp; возвращает в качестве blank
, который работал для моей ситуации устранения пустые строки посредством «родительского» & nbsp; & nbsp; if
обусловлены вторым токеном в начале for /f
, например:
for /f "tokens=1,2*" %%a in ('ping -n 1 google.com') do (
if not "x%%b"=="x" (
{do things with non-blank lines}
)
)
Используя следующий код:
@echo off
systeminfo | findstr /b /c:"OS Name" /c:"OS Version"
echo.&echo.
ping -n 1 google.com
echo.&echo.
for /f %%a in ('ping -n 1 google.com') do ( echo "%%a" )
echo.&echo.&echo --------------&echo.&echo.
find /?
echo.&echo.
for /f %%a in ('find /?') do ( echo "%%a" )
echo.&echo.
pause
.... следующее, что я вижу в Windows XP, Windows 7 и Windows 2008, будучи единственными тремя версиями и amp; сервисные пакеты Windows У меня есть готовый доступ к:
[/g3]
[/g4]
[/g5]