|было неожиданно в это время в Windows 7 - PullRequest
0 голосов
/ 12 марта 2019

Вот мой командный файл

@echo off
set /a IPCOUNT=1
set IP_FILTER=^IPV4
for /f "tokens=1,2,3 delims=:" %%i in ('2^>nul ipconfig | findstr /i "!IP_FILTER!" | findstr /v "%"') do (
if "%%j" NEQ " 127.0.0.1" (
    echo    !IPCOUNT! %%j
    set IP_CHECK=%%j
    echo !IP_CHECK!>>"%REGULAR_IP_FILE%"
    set /a IPCOUNT+=1
)
)  

Когда я запускаю этот код, я получаю следующую ошибку:

| was unexpected at this time.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 12 марта 2019

На самом деле дубликатов этой темы довольно много. Однако я отвечаю, чтобы помочь вам учиться, потому что вы на самом деле делаете довольно много ошибок.

Фиксированный код выглядит следующим образом:

@echo off
setlocal EnableDelayedExpansion

set "IPcount=1"
set "IP_filter=IPV4"

for /F "tokens=2 delims=:" %%A in ('2^>nul ipconfig ^| findstr /IRC:"%IP_filter%"') do (
    for /F "tokens=*" %%B IN ("%%A") do (
        if not "%%B" == "127.0.0.1" (
            echo !IPcount! %%B
            (echo %%B)>>"%REGULAR_IP_FILE%"
            set /a "IPcount+=1"
        )
    )
)
  • Я включил отложенное расширение . Кажется, вы используете его в своем файле, но не включили его.
  • Просто сделал несколько букв строчными. (незначительное улучшение)
  • Кажется, вы хотите найти свой IPv4-адрес. Я изменил ваш сценарий, чтобы добавить лучший способ. Обратите внимание, что IPv4 (регистр в чувствителен) не в начале строки. Пробел находится в начале строки, поэтому я удалил ^, но сохранил регулярное выражение.
  • Были сделаны некоторые другие незначительные улучшения, например, убрал бесполезную строку, в которой вы устанавливали переменную, и использовал переменную for /F. Кроме того, скобки добавлены для обеспечения безопасности приложения.
  • Нечто довольно важное; используйте его для лучшей практики: цитируйте set переменные и значения в формате set (/a) "var=value".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...