我正在尝试编写一个批处理,将配置文件文件夹的名称复制到一个 txt 文件,然后获取每一行(配置文件)并用它查询广告。我似乎遇到的两个问题是:
- 它说我编写 for 循环的方式存在语法错误
- 如果我将其分解以进行调试,则循环似乎只是一遍又一遍地设置变量,然后仅使用最终值来执行下标中的命令
@echo off
@setlocal enabledelayedexpansion
pushd "c:\documents and settings"
mkdir c:\pulls
copy \\mint\testfolder\forfiles.exe c:\pulls\
copy \\mint\testfolder\psexec.exe c:\pulls\
rem call \\mint\testfolder\copy.bat c:\pulls\
set queryid=
set checkid=
rem finds all profiles that have been logged into in the last 18 months
c:\pulls\forfiles.exe /p "c:\documents and settings\" /d -540 /c "cmd /c if @ISdir==true deltree @isdir"
dir/b > "c:\documents and settings\profiles.txt"
%queryid% > "c:\documents and settings\tmp.txt"
rem active directory query
:adquery
for /f "tokens=*" %%n IN ("c:\documents and settings\profiles.txt") do (
set queryid=%%n
call :sub
)
goto :end
:sub
c:\pulls\psexec.exe \\computer-u domain\user -p password dsquery user -name %queryid% > "c:\documents and settings\tmp.txt"
set /p checkid= < "c:\documents and settings\tmp.txt"
del "c:\documents and settings\tmp.txt"
::checks to see if variable is an empty string
if [!%checkid%==!] goto :process1
if [%checkid%==] %queryid% >> c:\documents and settings\final.txt
goto :eof
:process1
c:\pulls\psexec.exe \\computer -u domain\user -p password dsquery user -name %queryid% -desc *termed* > "c:\documents and settings\tmp.txt"
set /p checkid= < "c:\documents and settings\tmp.txt"
del "c:\documents and settings\tmp.txt"
::checks to see if variable is an empty string
if [!%checkid%==!] goto :amending
if [%checkid%==] goto :process2
goto :eof
:process2
c:\pulls\psexec.exe \\computer -u domain\user -p password dsquery user -name %queryid% -disabled > "c:\documents and settings\tmp.txt"
set /p checkid= < "c:\documents and settings\tmp.txt"
del "c:\documents and settings\tmp.txt"
::checks to see if variable is an empty string
if [!%checkid%==!] goto :amending
goto :eof
:amending
%checkid% >> "c:\documents and settings\final.txt"
goto :eof
:end
notepad.exe "c:\documents and settings\final.txt"
del c:\pulls /y
del "c:\documents and settings\profiles.txt"
del "c:\documents and settings\final.txt"
rem copies selected profiles
rem c:\pulls\copy.bat