是否可以在不使用命令提示符的情况下删除文件的“系统”文件属性?基本上,我想这样做:
attrib "folder" -s
attrib "file" -s
无需使用命令提示符或批处理文件。Windows 资源管理器属性菜单允许您对隐藏和只读属性执行此操作,是否有办法使用系统属性执行此操作?
答案1
如果您想要通过上下文菜单执行某些操作,如果您经常尝试执行此操作,这里有一种方法可以节省您的时间:
创建批处理文件RemoveSysAttrib.bat
@echo off
attrib -s "%1%"
然后按照本指南将自定义应用程序添加到上下文菜单:如何将任何应用程序添加到 Windows 桌面右键单击菜单
然后,您可以使用批处理文件创建一个名为“删除系统属性”的菜单项,它就是用来执行此操作的。这样,您还可以创建一个脚本来重新添加该属性。让它适用于多个文件选择可能有点麻烦,但如果运气好的话,它会为每个选定的项目启动一次文件。您需要使用以下命令进行测试:
@echo off
echo %1%
pause
如果它将文件名作为属性 1、2、3 等提供,则必须循环遍历所有参数。如果提供了多个参数,则可以像这样递归调用脚本:
if NOT "%2%"=="" (
for %%A in (%*) do (
RemoveSysAttrib.bat "%%A"
)
) else (
attrib -s "%1%"
)
希望有帮助=)
回应 Synetech 的评论:
当您使用 时,如果设置了另一个,
attrib
它不会更改H
或设置(它会说S
不重置 XXXX 文件)。您需要删除(或设置)两者,然后将您不想修改的那个改回之前的状态。
我扩展了脚本以检查 Windows 7attrib
命令报告的“H”属性。为了使其更通用,您需要检查更多子字符串位置,因为我预感到其他版本的情况有所不同。我现在手边没有其他版本的 Windows,所以我无法检查。
@echo off
setlocal enabledelayedexpansion
:: Check if file is hidden - works on Windows 7
set hidden=0
for /f "delims=" %%A in ('attrib "%1%"') do (
set attr=%%A
if "!attr:~4,1!"=="H" set hidden=1
)
:: If file is hidden, remove both attributes, then hide again.
if %hidden%==1 (
attrib -S -H "%1%"
attrib +H "%1%"
) else (
attrib -S "%1%"
)
endlocal
答案2
答案3
我又发现了两个程序:
属性改变器 -http://attribute-changer.software.informer.com/
文件属性剥离器 1.0 -http://www.softpedia.com/get/System/File-Management/File-Attribute-Stripper.shtml
前段时间我使用“RemoveR PRO”来自 -http://www.bigwig.net/softwaredesign/free.htm(现在链接失效了),也许你可以在一些档案中找到它
答案4
您可以使用属性菜单shell 扩展为文件和文件夹创建上下文菜单条目: