Board logo

标题: 批处理创建和使用以点结尾的的无法删除的畸形目录遇到的几个问题 [打印本页]

作者: jasonshaw    时间: 2009-4-24 00:51     标题: 批处理创建和使用以点结尾的的无法删除的畸形目录遇到的几个问题

以前在论坛上看到可以简答的建立一个不可以删除的文件夹用来放一些不想让别人看到的文件之类的
虽说安全性也不怎么高,但是挺简单,对于一般电脑用户还是有用的
新学批处理,很想动手练习一下,于是就写了下面的代码

有几个问题不懂,希望有人能指教和完善这个东西
1、这个程序在执行创建的时候,实际是应该判断是否以前创建过,但是对于sc...\这样的目录,好像用 if exist 不好判断
不知道如何才能实现

2、密码需要加密,也能够根据不同的使用者自定义密码:程序里面实际上是应该有个密码加密的过程的,找到一些,但是不太理解不知道如何嵌入进来,现在是用当前系统的用户名来代替(一般使用者在未知的情况下能糊弄过去吧,我也想过用当前日期),再一个就是批处理的代码里面,如果能在定制后能够保存用来判断的密码
比如:我使用第一次的时候 问我设置密码,下次就用这个密码来判断,但是下次还是这个批处理,怎么能记住上次的密码,(不用创建新的文件那种)

3、程序里面不知什么地方有错,在执行进入那个文件夹的时候  偶尔会莫名其妙的自己关掉,就是那个文件夹打开了,然后什么也没动,自己就关闭了,不知道是 为什么   对start的 参数似乎不是非常清楚,加 /i /b 之类的都不能解决(这种情况有时却不发生)

4、在创建目录的时候 建立 那个 比如建立 f:\sc...\目录之后 没法用attrib 设置系统 和隐藏属性 只能曲线救国 在外面又套了一个正常的文件夹 对那个文件夹设置属性

5、还有就是这个不可以删除 不可以直接进入的目录 似乎在打开并放入文件之后 就会出现一个“同名”的文件夹,比如我建立的是f:\sc...\  里面放入文件之后 就会多了 f:\sc\的目录   很奇怪的 里面的东西明明存在,但两个文件夹属性都是空 不明白,还有就是 怎么能不要多出那个 f:\sc\的目录呢?

简单的讲
1、设置密码并保存的问题
2、批处理加密字符串的简单有效地算法
3、畸形目录如何设置属性 如何判断存在
4、存取文件的时候如何能避免产生多余的文件
5、用start打开的文件夹 莫名其妙关闭的问题如何解决




  1. @echo off & setlocal EnableDelayedExpansion
  2. title 我有许多小秘密,就不告诉你,就不告诉...
  3. cls
  4. color 1f
  5. MODE con: COLS=35 LINES=15
  6. :check
  7. cls
  8. set /p pw=请输入密码:
  9. if not "%pw%"=="%username%" goto check
  10. :cho
  11. cls
  12. echo.
  13. echo      1.创建“我的小秘密”目录
  14. echo.
  15. echo      2.删除“我的小秘密”目录
  16. echo.
  17. echo      3.进入“我的小秘密”目录
  18. echo.
  19. echo      4.退出
  20. echo.
  21. set choice=
  22. set /p choice=      请选择:
  23. IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
  24. if /i "%choice%"=="1" goto cr
  25. if /i "%choice%"=="2" goto de
  26. if /i "%choice%"=="3" goto en
  27. if /i "%choice%"=="4" goto end
  28. echo      请正确选择&pause&goto cho
  29. :cr
  30. if not exist _config.txt (
  31. echo      无配置文件,请配置好保存
  32. echo.>_config.txt
  33. start /wait _config.txt
  34. goto cr
  35. )
  36. call :read
  37. md "%ro%\"
  38. attrib "%ro%" +h +s /s /d
  39. md "%pa%...\"
  40. echo      创建成功,按任意键返回&pause>nul
  41. goto cho
  42. :de
  43. start /wait msg %username% /time:5  !!注意:我的小秘密文件夹将彻底删除,如想取消请关闭本窗口
  44. echo      按任意键执行删除&pause>nul
  45. call :read
  46. rd /s /q %ro%
  47. echo      成功删除,按任意键返回&pause>nul
  48. goto cho
  49. :en
  50. call :read
  51. start /i /max %pa%...\ >nul 2>nul
  52. echo      按任意键返回&pause>nul
  53. goto cho
  54. :end
  55. exit
  56. :read
  57. set n=0
  58. for /f "tokens=2 delims=:" %%i in (_config.txt) do (
  59. set /a n+=1
  60. if !n! equ 1 set dr=%%i
  61. if !n! equ 2 set di=%%i
  62. )
  63. set pa=!dr!:\RECYC1ER\!di!
  64. set ro=!dr!:\RECYC1ER
  65. goto :eof
复制代码

作者: zqz0012005    时间: 2009-4-24 08:54

带点的畸形文件(夹)本来就是Windows的Bug(CMD与GUI不一致?CMD对字符的处理不完善?具体原因不清楚)
利用这样的bug可能会带来更多无法预料的问题。
1、2,与本帖完全是不相关的内容,请不要把相差太远的话题放在同一帖,如有必要请开新帖。
3,见此帖:http://www.bathome.net/viewthread.php?tid=3885
4、5,估计无法实现。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2