【发布时间】:2014-07-30 18:40:37
【问题描述】:
通过在每个用户的 appdata 文件夹中搜索可执行文件,然后在找到时采取一系列操作,尝试找出哪些用户拥有 google chrome。在我们的系统上,一些用户文件夹位于永久磁盘 D: 上。我对这两个实例都使用了 for 循环,但我确信有更好的方法。
如果我从计算机上运行它,它似乎可以工作,但是当作为启动运行时,似乎什么也没有发生。想知道是否有人可以指出问题或效率低下,我知道那里。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /D %%H IN ("D:\Users\*") DO (
IF EXIST "%%H\appdata\local\google\chrome\application\chrome.exe" (
DEL /Q "%%H\Desktop\Google Chrome.lnk"
msiexec /i "[MSI PATH]" /quiet
ECHO %DATE% %COMPUTERNAME% %%H Replaced >> "ChromeInstalls.txt"
)
)
FOR /D %%G IN ("C:\Users\*") DO (
IF EXIST "%%G\appdata\local\google\chrome\application\chrome.exe" (
DEL /Q "%%G\Desktop\Google Chrome.lnk"
msiexec /i "[MSI PATH]" /quiet
ECHO %DATE% %COMPUTERNAME% %%G Replaced >> "ChromeInstalls.txt"
)
)
EXIT /b
感谢任何帮助。
【问题讨论】:
-
您的代码似乎没有问题。在
IF EXIST行之后放置一行echo %%H&pause并执行您的代码 - 检查是否检测到现有位置。如果它仅在启动脚本中失败,则权限可能是问题。 -
它找到了我要找的东西。有人告诉我这不是权限问题,但我会再次检查,因为每次我手动运行它时它都可以正常工作。
-
想通了。此脚本在实际启动脚本中的调用路径有小错字。感谢您向我保证我的理智。
标签: variables batch-file for-loop