我有一个小型批处理文件,它将计算机名称写入log.txt。我需要批处理文件来扫描文件中当前的计算机名列表。如果名称存在,那么只需退出,如果名称doe snot存在,我需要它来编写它。
我已经编写了将计算机名称写入文件的部分
Echo %computername%>>C:\log.txt
现在我需要它来读取日志,并且只有在文件中不存在的情况下才写入计算机名称。
答案 0 :(得分:3)
试试这个:
FINDSTR "^%computername%$" < C:\log.txt >NUL || ECHO %computername%>>C:\log.txt
FINDSTR
命令在%computername%
中搜索C:\log.txt
,确保它不是某个其他名称的子字符串(^
和$
符号搜索词,有关详细信息,请参阅FINDSTR /?
。如果FINDSTR
找不到任何内容,则会引发ERRORLEVEL
。
||
命令分隔符表示在调用以下命令(ERRORLEVEL
)之前应检查ECHO
的值。如果引发ERRORLEVEL
,则执行命令,否则不执行。
因此,如果FINDSTR
找不到任何内容,名称将被添加到文件中。