【问题标题】:Running a batch file for all user profiles为所有用户配置文件运行批处理文件
【发布时间】:2015-08-21 13:21:35
【问题描述】:

我正在尝试清理我们所有的用户配置文件。我编写了一个批处理文件,它将在运行时删除登录用户的所有文件/目录。但是,我们希望在周末为所有未登录的用户运行此操作。我对 Vb 脚本以及一般编码都是新手。解决这个问题的不同想法是运行我们所有用户配置文件的环回,它将找到的每个用户名写入一个数组。然后让批处理文件调用数组中的每个名称以通过并运行删除过程。但是,就像我说的那样,我对数组和环回非常陌生且缺乏经验。

这是我写的批处理文件:

MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Extensions" "C:\Users\%username%\AppData\Local\Google\Chrome\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" "C:\Users\%username%\AppData\Local\Google\Chrome"
Move "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Bookmarks.bak" "C:\Users\%username%\AppData\Local\Google\Chrome"
Move "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Preferences" "C:\Users\%username%\AppData\Local\Google\Chrome"
Move "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\History-journal" "C:\Users\%username%\AppData\Local\Google\Chrome"
Move "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\History" "C:\Users\%username%\AppData\Local\Google\Chrome"
del /S /Q "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\*"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\Bookmarks" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\Bookmarks.bak" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\Preferences" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\Extensions" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\History-journal" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"
MOVE "C:\Users\%username%\AppData\Local\Google\Chrome\History" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\"

我假设必须修改 %username% 以改为从数组中调用。 您可以就该过程的任何部分提供任何帮助,我们将不胜感激。 谢谢。

【问题讨论】:

    标签: arrays batch-file vbscript user-profile citrix


    【解决方案1】:

    编辑:现在我知道你想要什么了。
    我将所有 %username% 更改为 %%a,因为我们逐行从 ALL_USERNAME_ARE_STORED_HERE.txt 获取用户名。

    @Echo off
    Setlocal EnableDelayedExpansion
    
    for /f "tokens=*" %%a in (ALL_USERNAME_ARE_STORED_HERE.txt) do (
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\Extensions" "C:\Users\%%a\AppData\Local\Google\Chrome\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" "C:\Users\%%a\AppData\Local\Google\Chrome"
        Move "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\Bookmarks.bak" "C:\Users\%%a\AppData\Local\Google\Chrome"
        Move "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\Preferences" "C:\Users\%%a\AppData\Local\Google\Chrome"
        Move "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\History-journal" "C:\Users\%%a\AppData\Local\Google\Chrome"
        Move "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\History" "C:\Users\%%a\AppData\Local\Google\Chrome"
        del /S /Q "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\*"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\Bookmarks" "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\Bookmarks.bak" "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\Preferences" "C:\Users\%%aAppData\Local\Google\Chrome\User Data\Default\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\Extensions" "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\History-journal" "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\"
        MOVE "C:\Users\%%a\AppData\Local\Google\Chrome\History" "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\"
    )
    
    pause >nul
    

    如果我再次误解了你,请告诉我...
    *仔细检查所有%username%已更改为%%a

    【讨论】:

    • 感谢您的脚本。这将创建一个具有越来越大限制的动态数组?就像我说的那样,我是这类东西的新手,所以我想尽可能地理解它。为什么下面的行?: echo %array[0]% echo %array[4]% echo %array[9]% 意思为什么只有 0、4、9?
    • 另外,我如何将所有用户名都保存到文本文件中?我现在正在研究试图找出该命令,而不是必须通过并输入每个用户。
    • echo 只是让您查看结果的示例。好吧,根据C++,整数类型数组存储4个字节的数据(如果没记错的话),所以我猜在它完全填满你的硬盘之前有很多数组:)
    • 您从哪里获得这些用户名? set /p ?
    • 再次感谢您。我会解决这个问题并更新我发现/工作的内容。 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多