我在批处理文件中有以下代码来返回给定的用户电子邮件地址:
for /f "tokens=1-3" %%A in (users.txt) do (
dsquery user -name "*%%A*, *%%C*"|dsget user -email >> result.txt
)
它工作正常,但我希望对以下内容有所帮助:
1 - 确定是否找不到匹配项并输出合适的行到结果文件中,例如:echo No match found for %%A, %%B >> results.txt
?
2 - 我想删除DSGET的所有附加输出,例如:DSGET succeeded
和'email',只留下电子邮件地址?
答案 0 :(得分:0)
经过一些试验和错误后,我得到了以下内容,以便为我提供所需的输出:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-3" %%A in (users.txt) do (
dsquery user -name "%%A, %%B* *%%C*" |dsget user -email |findstr "succeeded"
if !errorlevel!== 0 (
for /f "tokens=*" %%a in ('dsquery user -name "%%A, %%B* *%%C*" ^|dsget user -email ^|findstr /v "email" ^|findstr /v "dsget"') do @echo %%a >> result.txt)
if !errorlevel!== 1 echo Match Not found %%A, %%B >> result.txt
)