|
|
发表于 2009-7-4 00:16:28
|
显示全部楼层
回复 6楼 的帖子
4楼的代码看着眼花??是没看懂吧?“层次分明”得很啊。给你个建议,以后像写if %tmp:~4,2%== H这样的字符比较最好等号两边都用双引号“关闭”,如if "%tmp:~4,2%" == " H"。不然到时候出错了还不知道是怎么回事。另外照你那样的判断方法好像还少了一种情况吧?if "%tmp:~4,2%" == " "两种属性都没有的情况。还有,%tmp:~4,2%应该是%tmp:~3,2%吧?“delims=&”中的&哪来的?真不知道你代码写好后试过没。
原来attrib自己就可以查看文件的属性啊,一直都忽视了呢,惭愧惭愧!- @echo off&setlocal enabledelayedexpansion&cls
- if "%~1" == "" (
- echo=请把要设置属性的文件或文件夹拖到该窗口。(手动输入也是可以的。)
- set "ph="&set /p ph=文件或文件夹完整路径=
- if "!ph!" == "" (endlocal&%~s0&exit)
- if not exist "!ph!" (cls&echo=文件或文件夹[!ph!]不存在。请重新输入。&pause&endlocal&%~s0&exit)
- for /f "delims=" %%i in ('attrib !ph!') do (set "x=%%i")
- if /i "!x:~4,1!" equ "h" (
- if /i "!x:~3,1!" equ "s" (
- attrib -h -s "!ph:"=!"
- ) else attrib +h +s "!ph:"=!"
- ) else attrib +h +s "!ph:"=!"
- ) else (
- set "x=%~a1"
- set "ph=%~1"
- if /i "!x:~3,1!" equ "h" (
- if /i "!x:~4,1!" equ "s" (
- attrib -h -s "!ph!"
- ) else attrib +h +s "!ph!"
- ) else attrib +h +s "!ph!"
- )
复制代码 也是两种运行方式,同4楼。
[ 本帖最后由 zljzsmzzx 于 2009-7-4 00:27 编辑 ] |
评分
-
查看全部评分
|