Batch file 可以使用.bat在网络中的多台计算机上删除文件吗?

Batch file 可以使用.bat在网络中的多台计算机上删除文件吗?,batch-file,windows-7,delete-file,Batch File,Windows 7,Delete File,我正在设法删除连接到本地网络的Windows 7计算机上选定的文件/文件夹 我遇到的问题是“我的文档”在所有计算机上的位置都不同,如在Windows 7中,路径=C:\Users**username**\Documents 我想把一个批处理文件放在一个共享目录中,这样它就可以在需要的时间在机器上本地运行 非常感谢您提供的任何帮助或建议。如果您想编写适用于不同用户的bat文件,并从用户的“我的文档”文件夹中删除文件,则可以使用以下命令编写bat文件: del %USERPROFILE%\Docum

我正在设法删除连接到本地网络的Windows 7计算机上选定的文件/文件夹

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

我想把一个批处理文件放在一个共享目录中,这样它就可以在需要的时间在机器上本地运行


非常感谢您提供的任何帮助或建议。

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

del %USERPROFILE%\Documents\file_to_delete
rd /qs %USERPROFILE%\Documents\folder_to_delete
Windows将变量USERPROFILE设置为每个用户的正确位置。您可以使用检查cmd.exe中USERPROFILE和其他环境变量的值

set

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

虽然有一种方法不必检查Windows操作系统,但它需要管理访问权限。我从堆栈溢出中得到了这个消息,它可以在注册表中的
下的
个人
下的“HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell文件夹”
中找到
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"
编辑:或者,您也可以搜索是否存在
文档
文件夹,但这可能会被某个人的Windows 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:查找
文档是否存在并删除所有:

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
再次创建文件夹。

要删除的文件在哪里?为什么“我的文档”文件夹不同是一个问题?嗨,沃纳,这些文件夹位于“我的文档”中,这是一个问题,因为我希望每个机器都能使用一个批处理文件,在本地手动运行。请告诉我,我是不是太天真了,错过了一些明显的东西?。?。?除了使用批处理文件,还有更简单的选择吗?还是有脚本可以解决这个问题?所以“我的文档”驻留在网络驱动器上?如果你把问题写得更清楚就好了。没有“我的文档”是Windows 7计算机上的本地库。谢谢各位,如果用户在“文档”库中有一个名为“johnsmith”的文件夹,而我想删除该文件夹的全部内容,我的批处理文件应该是什么样子?您想使用哪种方法?我认为使用%USERPROFILE%命令最简单。您应该只在所有计算机的
my Documents
目录名称相同的情况下使用它。。是吗?是的。他们都有“我的文件”文件夹