我正在尝试在连接到本地网络的Windows 7计算机上找到删除所选文件/文件夹的方法。
我遇到的问题是“我的文档”的位置在所有计算机上都不同,如在Windows 7中路径= C:\ Users **用户名** \ Documents。
我想将批处理文件放在共享目录中,以便可以在所需的时间在本地运行。
非常感谢任何帮助或建议。
答案 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
重新制作文件夹。