使用批处理文件删除多个用户的多个用户的文件

时间:2016-02-27 22:17:12

标签: batch-file cmd batch-processing

我正在尝试设置批处理程序,该程序将转到我网络上的不同计算机(来自.txt文件),然后从该PC上的用户删除文件,然后清空回收站。我有第二部分工作,所以我可以删除PC上多个用户的文件,但我不能让它看看其他PC。我希望有人可能会指出我在这里缺少的东西。以下是我到目前为止的情况:

@ECHO off
Setlocal EnableDelayedExpansion


FOR /F "delims=" %%i IN (test.txt) DO (


for /f %%a in ('dir /B /AD C:\Users') do (
REM for /f "tokens=*" %%a in (userlist.txt) do (

    if exist "C:\Users\%%a\" del /S /Q "C:\Users\%%a\AppData\Local\Lotus\Notes\Data\workspace\logs"
    if exist "C:\Users\%%a\" del /S /Q "C:\Users\%%a\AppData\Local\Google\Chrome\User Data\Default\*"
    if exist "C:\Users\%%a\" del /S /Q "C:\Users\%%a\AppData\Local\Microsoft\Windows\Temporary Internet Files"
)

RD %systemdrive%\$Recycle.Bin /S /Q
)

pause

有人有任何指示吗?

1 个答案:

答案 0 :(得分:0)

您需要使用UNC路径。

\\server\sharename\folder\file.ext

您可以使用

获取计算机列表
for /f "skip=3" %A in ('net view ^| findstr /C:"\\"') do Echo %A

所有计算机的管理员共享只有C$,即C驱动器(和D $等)。 $将其隐藏起来。所以

通过UNC的本地计算机

del /S /Q "\\127.0.0.1\C$\User\username\AppData\Local\Lotus\Notes\Data\workspace\logs"

同样没有意义If Exist,只是删除它 - 它会起作用。如果您关心它是否有效,则测试返回值If errorlevel 1 echo error。您正在导致额外的磁盘访问和网络流量。在编程中我们做并测试不测试和做。

您也可以在另一台计算机上运行批处理。

wmic /node:"@Computerlist.txt" process call create "c:\\batchfile.bat"

注意路径中的\\。远程计算机上的C:\\batcfile.batC:。这允许您只在批处理文件中使用一个for循环。您使用副本复制批处理文件。 Net View可以生成计算机列表,但您必须删除\\

for /f "tokens=1 delims=\" %A in ('net view ^| findstr /C:"\\"') do Echo %A