0

プロファイル フォルダーの名前を txt ファイルにコピーし、各行 (プロファイル) を取得して広告をクエリするバッチを作成しようとしています。私が抱えていると思われる2つの問題は次のとおりです。

  1. forループの書き方に構文エラーがあると表示されます
  2. デバッグのために分解すると、ループは変数を何度も設定するように見え、最終的な値を使用して添え字のコマンドを実行するだけです
@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
4

1 に答える 1