找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27213|回复: 12

[文件操作] 【已解决】批处理 拖动文件到窗口 后续执行错误...求解

[复制链接]
发表于 2014-2-11 11:23:09 | 显示全部楼层 |阅读模式
本帖最后由 comicguests 于 2014-2-12 06:44 编辑

  1. @rem ----- ExeScript Options Begin -----
  2. @rem ScriptType: console,invoker
  3. @rem DestDirectory: temp
  4. @rem ----- ExeScript Options End -----
  5. @echo off
  6. :lab1
  7. cls
  8. color 2f
  9. echo.
  10. echo                 【 更改文件(文件夹)属性】
  11. echo                  -------------------------------
  12. echo.
  13. echo.
  14. echo.
  15. echo.
  16. echo.
  17. set Choice=
  18. echo         请将要更改的文件(文件夹)直接拖入本窗口,然后回车:
  19. echo.
  20. set /p Doc=
  21. if ""%Doc%"" == "" goto lab1

  22. echo         a..........(+)只读文件属性
  23. echo         b..........(+)存档文件属性
  24. echo         c..........(+)系统文件属性
  25. echo         d..........(+)隐藏文件属性
  26. echo         e..........(-)只读文件属性
  27. echo         f..........(-)存档文件属性
  28. echo         g..........(-)系统文件属性
  29. echo         h..........(-)隐藏文件属性
  30. echo.
  31. set /p CHS=     请输入您的选择:
  32. echo.
  33. if "%CHS%"=="a" goto addR
  34. if "%CHS%"=="b" goto addA
  35. if "%CHS%"=="c" goto addS
  36. if "%CHS%"=="d" goto addH
  37. if "%CHS%"=="e" goto subR
  38. if "%CHS%"=="f" goto subA
  39. if "%CHS%"=="g" goto subS
  40. if "%CHS%"=="h" goto subH
  41. goto lab1
  42. :addR
  43. attrib ""%Doc%"" +r
  44. :addA
  45. attrib ""%Doc%"" +a
  46. :addS
  47. attrib ""%Doc%"" +s
  48. :addH
  49. attrib ""%Doc%"" +h
  50. :subR
  51. attrib ""%Doc%"" -r
  52. :subA
  53. attrib ""%Doc%"" -a
  54. :subS
  55. attrib ""%Doc%"" -s
  56. :subH
  57. attrib ""%Doc%"" -h
  58. exit
复制代码
不知道哪里出错了,希望各位指教

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-2-11 13:05:55 | 显示全部楼层
把 @echo off 删掉
把报错信息发出来看看
 楼主| 发表于 2014-2-11 14:32:17 | 显示全部楼层
回复 2# DAIC

  1. c:\>color 2f

  2. c:\>echo.


  3. c:\>echo                【 更改文件(文件夹)属性】
  4.                 【 更改文件(文件夹)属性】

  5. c:\>echo                 -------------------------------
  6.                  -------------------------------

  7. c:\>echo.


  8. c:\>echo.


  9. c:\>echo.


  10. c:\>echo.


  11. c:\>echo.


  12. c:\>set Choice=

  13. c:\>echo        请将要更改的文件(文件夹)直接拖入本窗口,然后回车:
  14.         请将要更改的文件(文件夹)直接拖入本窗口,然后回车:

  15. c:\>echo.


  16. c:\>set /p Doc=
  17. C:\Users\c\Desktop\test

  18. c:\>if ""C:\Users\c\Desktop\test"" == "" goto lab1

  19. c:\>echo        a..........(+)系统文件属性
  20.         a..........(+)系统文件属性

  21. c:\>echo        b..........(+)隐藏文件属性
  22.         b..........(+)隐藏文件属性

  23. c:\>echo        c..........(+)存档文件属性
  24.         c..........(+)存档文件属性

  25. c:\>echo        d..........(+)只读文件属性
  26.         d..........(+)只读文件属性

  27. c:\>echo        e..........(-)系统文件属性
  28.         e..........(-)系统文件属性

  29. c:\>echo        f..........(-)隐藏文件属性
  30.         f..........(-)隐藏文件属性

  31. c:\>echo        g..........(-)存档文件属性
  32.         g..........(-)存档文件属性

  33. c:\>echo        h..........(-)只读文件属性
  34.         h..........(-)只读文件属性

  35. c:\>echo.


  36. c:\>set /p CHS=     请输入您的选择:
  37. 请输入您的选择:b

  38. c:\>echo.


  39. c:\>if "b" == "a" goto addR

  40. c:\>if "b" == "b" goto addA

  41. c:\>attrib ""C:\Users\c\Desktop\test"" +a

  42. c:\>attrib ""C:\Users\c\Desktop\test"" +s

  43. c:\>attrib ""C:\Users\c\Desktop\test"" +h
  44. 未重置系统文件 - C:\Users\c\Desktop\test

  45. c:\>attrib ""C:\Users\c\Desktop\test"" -r
  46. 未重置系统文件 - C:\Users\c\Desktop\test

  47. c:\>attrib ""C:\Users\c\Desktop\test"" -a
  48. 未重置系统文件 - C:\Users\c\Desktop\test

  49. c:\>attrib ""C:\Users\c\Desktop\test"" -s

  50. c:\>attrib ""C:\Users\c\Desktop\test"" -h

  51. c:\>pause
  52. 请按任意键继续. . .



复制代码
 楼主| 发表于 2014-2-11 14:33:14 | 显示全部楼层
回复 2# DAIC


显示    未重置系统文件   怎么办?
发表于 2014-2-11 17:53:43 | 显示全部楼层
回复 4# comicguests


微软的官方文档说的很清楚:
如果文件设置了系统或隐藏属性,则为了更改该文件的其他属性,您必须首先清除其系统或隐藏属性。
发表于 2014-2-12 10:52:48 | 显示全部楼层
回复 1# comicguests


    第42行“goto set” 却没发现有:set 标签在哪。
 楼主| 发表于 2014-2-12 11:13:53 | 显示全部楼层
本帖最后由 comicguests 于 2014-2-12 04:17 编辑

回复 5# DAIC


    确定没加任何额外属性,是新建的文件夹,测试用...

而且问题知道出在哪了...批处理的描述对应错了,但不会失败,问题出在我用的资源管理器上,我用的是Total Commander,对虚拟桌面处理的不太好,才导致的问题,使用真实路径就没问题了...真是十分抱歉!!!


抱歉再问一下,怎样多选?,比如按下ad,就会加上两种属性?
 楼主| 发表于 2014-2-12 11:14:16 | 显示全部楼层
回复 6# battab


    感谢提示,已改!!
发表于 2014-2-12 11:53:07 | 显示全部楼层
本帖最后由 ivor 于 2014-2-12 11:58 编辑

每个标签后面没有goto :EOF或者 goto :lab1


判断语句建议用
  1. echo %CHS% | find "a" && goto addR
复制代码
按照这个格式后面的自己改

if "%CHS%"=="a" goto addR
if "%CHS%"=="b" goto addA
if "%CHS%"=="c" goto addS
if "%CHS%"=="d" goto addH
if "%CHS%"=="e" goto subR
if "%CHS%"=="f" goto subA
if "%CHS%"=="g" goto subS
if "%CHS%"=="h" goto subH
 楼主| 发表于 2014-2-12 13:45:30 | 显示全部楼层
回复 9# ivor


    感谢,学习了!
发表于 2014-2-12 13:49:43 | 显示全部楼层
回复 9# ivor


    判断语句改成这样有什么好处吗?
发表于 2014-2-12 15:26:33 | 显示全部楼层
回复 11# DAIC


    兼容性好,不管你输入多少种组合,只要包含a,b,c,d,e,f,h都会执行对应的子程序(标签),
发表于 2014-2-12 15:52:44 | 显示全部楼层
回复 12# ivor


这样不太严谨把,比如可以输入非法的选项 az
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:54 , Processed in 0.035470 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表