是否可以使用.bat删除网络中多台计算机上的文件?

时间:2013-05-07 07:51:59

标签: batch-file windows-7 delete-file

我正在尝试在连接到本地网络的Windows 7计算机上找到删除所选文件/文件夹的方法。

我遇到的问题是“我的文档”的位置在所有计算机上都不同,如在Windows 7中路径= C:\ Users **用户名** \ Documents。

我想将批处理文件放在共享目录中,以便可以在所需的时间在本地运行。

非常感谢任何帮助或建议。

2 个答案:

答案 0 :(得分:0)

如果要编写适用于不同用户的bat文件并从用户的“my documents”文件夹中删除文件,则可以使用以下命令编写bat文件:

del %USERPROFILE%\Documents\file_to_delete
rd /qs %USERPROFILE%\Documents\folder_to_delete

Windows将变量USERPROFILE设置为每个用户的正确位置。您可以使用

检查cmd.exe中的USERPROFILE和其他环境变量的值
set

答案 1 :(得分:0)

如果所有带有环境变量的Windows操作系统中的“我的文档”文件夹命名相同,这将非常简单:%USERPROFILE%始终指向用户的文件夹,"%USERPROFILE%\My Documents"会执行此操作。不幸的是,在Windows XP中,它被命名为My Documents,在Windows Vista和7中,它被命名为Documents。如果您提到的所有计算机都将“我的文档”命名为同名,则可以使用它。

虽然 没有检查Windows操作系统,但它需要管理访问权限。我从Stack Overflow上的an answer得到了这个,它可以在"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" Personal下的注册表中找到。 reg query会找到值,可以使用for循环提取:

for /f "skip=1 tokens=1,2* delims= " %%g in (`reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal') do set "documents=%%i"

echo %documents%
del "%documents%\etc"

编辑或者,您也可以搜索Documents文件夹的存在,但这可能会被某人的Windows中可能存在的Documents文件夹所抛弃例如,XP用户配置文件目录。

if exist "%USERPROFILE%\Documents" (
    del "%USERPROFILE%\Documents\etc"
) else (
    del "%USERPROFILE%\My Documents\etc"
)

编辑2:要删除“我的文档”中的所有文件和子文件夹(如果名称为My Documents),而不删除文件夹本身,请使用以下命令:

del "%USERPROFILE%\My Documents\*"
for /d %%i in ("%USERPROFILE%\My Documents\*") do rd /s /q "%USERPROFILE%\My Documents\%%i"

(第一个是删除所有文件,第二个是所有子文件夹)

编辑3:要查找Documents是否存在并删除全部:

if exist "%USERPROFILE%\Documents" (
    rd /s /q "%USERPROFILE%\Documents"
    md "%USERPROFILE%\Documents"
) else (
    rd /s /q "%USERPROFILE%\My Documents"
    md "%USERPROFILE%\My Documents"
)

/s将删除所有文件和子文件夹,/q用于安静模式,它们不会提示您是否删除任何内容。然后md重新制作文件夹。