Ozt*_* C. 7 windows windows-7 windows-explorer command-line
是否可以在不使用命令提示符的情况下删除文件的“系统”文件属性?基本上,我想这样做:
attrib "folder" -s
attrib "file" -s
Run Code Online (Sandbox Code Playgroud)
不使用命令提示符或批处理文件。Windows 资源管理器属性菜单允许您对隐藏和只读属性执行此操作,有没有办法对系统属性执行此操作?
如果您想要一些可以从上下文菜单中执行的操作,如果您经常尝试执行此操作,这里有一种方法可以为您节省一些时间:
创建批处理文件 RemoveSysAttrib.bat
@echo off
attrib -s "%1%"
Run Code Online (Sandbox Code Playgroud)
然后按照本指南将自定义应用程序添加到上下文菜单:如何将任何应用程序添加到 Windows 桌面右键单击菜单
然后,您可以使用批处理文件创建一个名为“删除系统属性”的菜单项。这样,您还可以创建一个脚本来重新添加属性。让它适用于多个文件选择可能有点繁琐,但幸运的是它会为每个选定的项目启动一次文件。你会想要测试这个:
@echo off
echo %1%
pause
Run Code Online (Sandbox Code Playgroud)
如果它将文件名作为属性 1、2、3 等提供,则您必须遍历所有参数。如果提供了多个参数,您可以像这样递归调用您的脚本:
if NOT "%2%"=="" (
for %%A in (%*) do (
RemoveSysAttrib.bat "%%A"
)
) else (
attrib -s "%1%"
)
Run Code Online (Sandbox Code Playgroud)
希望有帮助=)
针对 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32974 次 |
| 最近记录: |