我正在尝试设置批处理程序,该程序将转到我网络上的不同计算机(来自.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
有人有任何指示吗?
答案 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.bat
为C:
。这允许您只在批处理文件中使用一个for循环。您使用副本复制批处理文件。 Net View可以生成计算机列表,但您必须删除\\
for /f "tokens=1 delims=\" %A in ('net view ^| findstr /C:"\\"') do Echo %A