2016-02-27 1 views
0

Я пытаюсь настроить пакетную программу, которая будет работать на разных компьютерах в моей сети (из TXT-файла), а затем удалять файлы с пользователей на этом ПК , а затем очистить корзину. У меня есть вторая часть работы, поэтому я могу удалять файлы с нескольких пользователей на ПК, но я не могу заставить ее смотреть на другие ПК. Я надеялся, что кто-то может указать, чего я здесь не хватает. Вот что я до сих пор:удаление файлов на нескольких ПК с несколькими пользователями с пакетным файлом

@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 

У кого-нибудь есть указатели?

ответ

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.bat - C: на удаленном компьютере. Это позволяет использовать только один цикл в вашем пакетном файле. Вы копируете пакетный файл с копией. Net View может генерировать список компьютеров, хотя вам необходимо удалить \\

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