#batch-file
#пакетный файл
Вопрос:
У меня есть небольшой пакетный файл, который записывает имя компьютера в log.txt . Мне нужен командный файл для сканирования списка имен компьютеров, находящихся в данный момент в файле. Если имя существует, просто выйдите, и если имя doe snot существует, мне нужно, чтобы оно его записало.
Я написал часть для записи имени компьютера в файл
Echo %computername%>>C:log.txt
Теперь мне нужно, чтобы он читал журнал и записывал имя компьютера только в том случае, если оно не существует в файле.
Ответ №1:
Попробуйте это:
FINDSTR "^%computername%$" < C:log.txt >NUL || ECHO %computername%>>C:log.txt
FINDSTR
Команда выполняет поиск %computername%
в C:log.txt
, убедившись, что это не подстрока какого-либо другого имени (символы ^
и $
вокруг поискового запроса см. FINDSTR /?
Для получения дополнительной информации). Если FINDSTR
ничего не найдено, он вызывает ERRORLEVEL
.
Разделитель ||
команд означает, что значение ERRORLEVEL
должно быть проверено перед вызовом следующей команды ( ECHO
) . Если ERRORLEVEL
вызывается, команда выполняется, в противном случае она не выполняется.
Таким образом, если FINDSTR
ничего не найдено, имя будет добавлено в файл.