批处理 - 循环文件夹和运行命令

时间:2013-11-06 11:28:57

标签: loops batch-file for-loop cmd command

我正在尝试使用批处理脚本从大约500多台Windows 7计算机中删除Dropbox。 Dropbox是在“%APPDATA%\ Dropbox”下按用户安装的。

要以静默方式卸载,您必须运行“%APPDATA%\ Dropbox \ bin \ DropboxUninstaller.exe / S”。我已经测试了这个命令,它工作正常,但问题是它只从你运行它的用户目录中卸载它。我已经尝试使用DropboxUninstaller.exe文件并从C:的根目录运行它,但它失败了。

我将通过SCCM推出这个脚本,因此它将在SYSTEM帐户下运行。我需要找到一种在所有用户目录之间循环的方法,找到哪些配置文件具有Dropbox \ bin \ DropboxUninstaller.exe路径/文件并在该位置运行它。

我已经测试了以另一个用户(本地管理员)身份登录并从另一个用户目录运行Dropbox卸载程序,并且它为我运行目录的用户卸载了很好,所以我知道这样可行。

如果有人能用正确的命令帮助我,那就太好了!我已经用Google搜索了答案,但它似乎并没有在那里。

提前致谢,

2 个答案:

答案 0 :(得分:0)

for /r c:\windows %A in (notepad.exe) do "%A" %windir%\win.ini

在批处理中记住%% A,在命令提示符处记住%A。

答案 1 :(得分:0)

搜索用户配置文件,如果存在卸载程序,则执行它(假设“标准”安装,可能需要调整)

@echo off
    setlocal enableextensions

    for /F "tokens=2,*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfileImagePath /s ^| find "REG_EXPAND_SZ" ^| findstr /v /i "\\windows\\ \\system32\\"') do (
        call :doUninstall "%%b"
    )

    endlocal
    exit /b

:doUninstall
    set "_uninstaller=%~1\AppData\Roaming\Dropbox\bin\DropboxUninstaller.exe"
    if not exist "%_uninstaller%" goto :EOF
    start "" /wait "%_uninstaller%" /S
    goto :EOF