巧解批量文件的只读属性
巧解批量文件的只读属性
许多人在利用光盘刻录机来备份文件,此时刻录文件会将属性设成只读,但是,如果将文件拷回硬盘,因为有些文件还有修改的需求,一个一个地修改属性可会使人发疯(在Windows中可点选目录下的全部文件,再选“属性”,将只读勾掉即可,但如果目录较多时,也十分麻烦),为了要解除大家的麻烦,我向大家介绍如何利用DOS批处理及Excel配合,来一次全部解除只读属性!
步骤如下:
1、将文件从光盘中复制到硬盘内;
2、打开一个MS-DOS窗口;
3、进入存放这些文件的磁盘路径之下,输入指令Attrib /s >att.bat,即使用Attrib这个可列表及更改属性的执行文件,将此目录下的所有文件的文件名及属性显示出来,并储存在一个名叫Att.bat的文件中(文件名可依个人喜好命名,但扩展名一定要是bat);
4、进入Excel,打开Att.bat文件,即可看到该目录下所有文件的名称、路径及属性,第1列为文档属性,第2列为只读属性,第3列为文件名,第4列为文件的具体路径;
5、在A栏(即第1列)插入一个栏位,输入Attrib,并复制到所有记录的第一个栏位;
6、将文档属性的内容(含有A的那一列)和文件名的那一列删除;
7、选择“只读属性栏(含有R的那一列)”,再进入“编辑”中的“替换”,寻找目标设定为R,替换设定为-R(即减R,将只读删除),再点选全部替换;
举个例子:原来的A R soft1.exe d:\111\soft1.exe 改为Attrib -R d:\111\soft1.exe
8、保存文件为纯文本格式,以空白或Tab间隔皆可;
9、用资源管理器或MS-DOS模式,执行Att.bat,即可将所有只读属性删除!
注:若有些文件不想更改属性,您只要在Excel中,把那些文件的记录删除即可!
因为是系统文件,所以只有去掉“系统”属性才可以去掉隐藏的属性!
在运行里输入:cmd
弹出命令提示符
输入命令:attrib文件的完整路径 -s -r -h
比如你想改C:\WINDOWS\winnt.bmp的隐藏属性,就输入:
attrib C:\WINDOWS\winnt.bmp -s -r -h
回车就好了!别忘记加空格!还有扩展名
这样,文件的属性就该为不隐藏了。
关于参数:
h是隐藏属性的参数
s是系统属性的参数
r是只读属性的参数
还有存档属性,我忘了,不常用,在windows下改就可以了
前面加“+”是设置成相应的属性,加“-”则是去掉相应的属性!
系统文件的属性最好不要乱改,万一误删,损失就大了!
@echo off
title 修改文件隐藏属性
mode con: cols=30 lines=10
attrib *.* -r -s -h /s /d
echo.
echo 处理成功,请按任意键退出!
pause>nul
以上代码保存为bat文件放在需要修改的文件夹或者根目录下(u盘最适用)执行即可,无任何毒副作用;
关于以上的解释:
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [
/D]] + 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文件属性。
[drive:][path][filename]
指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹。
方法一:为简单的修改一个文件的属性
1.我的电脑-工具-文件夹选项-查看-高级设置-显示所有文件和文件夹
方法二:为简单的修改顽固的系统属性
2.使用批处理命令。将以下代码复制至记事本,改后缀名txt为bat!
使用方法:将文件拖入本文件的图标,它就会自动运行了。
@echo off
setlocalenabledelayedexpansion
title 修改系统属性和隐藏属性
color f0
mode con: cols=50 lines=25
if "%~1"=="" (
echo 你没有拖入任何磁盘或文件或文件夹
echo 请把要处理的磁盘或文件或文件夹拖到批处理文件图标
echo 不要双击启动批处理
pause
)
:loop
cls
if "%~1"=="" goto :eof
if not exist "%~1" (echo 路径不存在)&pause&shift&goto loop
echo 当前处理的磁盘或文件或文件夹:
echo %~1
echo.
echo 请选择要进行的操作,然后按回车
echo.
echo 加系统和隐藏属性„„„„„„„„„„„1
echo 减系统和隐藏属性„„„„„„„„„„„2
echo 不处理„„„„„„„„„„„„„„„„3
echo.
set /p "c1=选择 (1,2,3) (不输入为!c1!,默认为2):"
if "!c1!"=="1" (set "d=+") else if "!c1!"=="3" (pause&shift&goto loop) else set "d=-"
set "a=%~a1"
if /i "!a:~0,1!"=="d" (
echo.
echo 这是一个文件夹,请选择要进行的操作,然后按回车
echo.
echo 只对该文件夹本身„„„„„„„„„„„1
echo 只对该文件夹中的文件夹和文件„„„„„2
echo 对该目录下的一切的文件夹和文件„„„„3
echo.
set /p "c2=选择 (1,2,3) (不输入为!c2!,默认为1):"
if "!c2!"=="2" (
pushd "%~1"
for /f "delims=" %%i in ('dir /a /b "%~1"') do attrib.exe !d!s !d!h "%%i"
popd
) else if "!c2!"=="3" (
for /f "delims=" %%i in ('dir /a /b /s "%~1"') do attrib.exe !d!s !d!h "%%i"
) else (
attrib.exe !d!s !d!h "%~1"
)
) else (
attrib.exe !d!s !d!h "%~1"
)
pause&shift&goto loop
方法三:是为批处理同文件夹下的所有文件的系统属性和隐藏属性
3、使用批处理命令。将以下代码复制至记事本,改后缀名txt为bat!
使用方法是:双击打开,按照提示操作。
@echo off
title 修改文件系统属性和隐藏属性工具
color f0
mode con: cols=41 lines=25
:start
cls
ECHO ================================
ECHO 请选择要进行的操作,然后按回车
ECHO ————————————————
echo 加系统和隐藏属性„„„„1
echo.
echo 减系统和隐藏属性„„„„2
echo.
echo 退出„„„„„„„„„„3
echo.
echo.
@set /p UserSelection=选择 ( 1 , 2 )
if %UserSelection% LEQ 3 if %UserSelection% GEQ 1 goto selection
goto start
:selection
@if "%UserSelection%"=="1" set selection=加
@if "%UserSelection%"=="2" set selection=减
@if "%UserSelection%"=="3" gotoendall
:name
cls
echo.
echo.
echo 同目录内所有文件%selection%属性„„„„回车键
echo.
echo 退出„„„„„„„„„„„„„„„q
echo.
echo 请输入要%selection%属性的文件全名(包括扩展名),如果不在同目录下请输入完整路径:
set /p name=
if "%name%"=="q" gotoendall
if not exist %name% goto none
if "%UserSelection%"=="1" goto add
if "%UserSelection%"=="2" goto minus
:none
cls
echo.
echo.
echo 找不到%name%文件,请确认文件名或者路径正确
echo.
echo.
pause
goto name
:add
attrib -s -h %name%
attrib +s +h %name%
goto end
:minus
attrib -s -h %name%
:end
echo.
echo 继续为其他文件修改属性„„„„y
echo.
echo.
@set /p UserSelection2=继续为其他文件修改属性?( y ,n)
@if "%UserSelection2%"=="y" goto start
:endall
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo 请按任意键退出! pause>nul