Запишите имя компьютера в текстовый файл, если этого имени еще нет в текстовом файле

#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 ничего не найдено, имя будет добавлено в файл.