Board logo

标题: 本机能用的批处理,换别的机子就不能用了... [打印本页]

作者: ixxxxyou     时间: 2008-6-29 02:37    标题: 本机能用的批处理,换别的机子就不能用了...

此为清理found和$开头的文件夹..
内容如下:
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z
for %%a in (%alldrive%) do (
    for /f "delims=" %%b in ('dir /ad/b %%a:\found.*') do (
         rd /s /q "%%a:\%%b"
    )
)   >nul 2>nul
for /f "delims=" %%a in ('dir /ad/b "%windir%\$*$" 1^>nul 2^>nul') do (rd /s/q "%windir%\%%a")

在本机上能够清除,但是换到别的机子上运行就没能清除$*$文件了..是那里出错了吗???
作者: lxmxn     时间: 2008-6-29 03:04
本机和别的机子环境是否一样?
作者: HAT     时间: 2008-6-29 11:30
命令行解释器里面运行一下最后一句不就知道原因了吗?
作者: ixxxxyou     时间: 2008-6-29 20:54


  Quote:
Originally posted by lxmxn at 2008-6-29 03:04 AM:
本机和别的机子环境是否一样?

这个倒没有看留意..

试过一台用深度系统的机子不能清理,和一台 安装原版XP的(一步一步安装的)也不能清理
作者: quya     时间: 2008-6-29 21:08
会不会是权限问题呢?

本机你是管理员,别的机器上就不一定了。$开头的文件夹都是管理员和SYSTEM权限。
作者: ixxxxyou     时间: 2008-6-29 21:22
都是管理员的
作者: ixxxxyou     时间: 2008-6-30 21:08
继续顶上去!
作者: HAT     时间: 2008-6-30 22:02
命令行解释器里面运行一下最后一句,把结果贴出来看看。
作者: balinger     时间: 2008-7-1 00:14
恕我愚昧,我怎么以为在哪台机子上,也删不了$打头的文件夹。
可楼主明言本机可用。
dir /ad/b "%windir%\$*$" 1>nul 2>nul   能显示$打头的文件夹?
作者: quya     时间: 2008-7-1 00:30


  Quote:
Originally posted by balinger at 2008-7-1 12:14 AM:
恕我愚昧,我怎么以为在哪台机子上,也删不了$打头的文件夹。
可楼主明言本机可用。
dir /ad/b "%windir%\$*$" 1>nul 2>nul   能显示$打头的文件夹?

哎呀,你总算看出来了。经提醒, 我也知道了。

2^>nul 可以保留的, 但1^>nul 错大了, 这样导致任何情况下都不能正常运行。
作者: ixxxxyou     时间: 2008-7-1 02:24
能解释下1^>nul 这个怎么错了吗?
作者: quya     时间: 2008-7-1 08:22


  Quote:
Originally posted by ixxxxyou at 2008-7-1 02:24 AM:
能解释下1^>nul 这个怎么错了吗?

输出结果被屏蔽了, 你怎么再del 这个输出结果?

9楼的话很有道理, 你就算在本机也无法得到准确的结果.
作者: ixxxxyou     时间: 2008-7-1 16:43


  Quote:
Originally posted by quya at 2008-7-1 08:22 AM:


输出结果被屏蔽了, 你怎么再del 这个输出结果?

9楼的话很有道理, 你就算在本机也无法得到准确的结果.

但是在本机真的可以清理掉$开头的文件夹啊..  奇怪了,  还真搞不懂呢

  Quote:
Originally posted by quya at 2008-7-1 08:22 AM:


输出结果被屏蔽了, 你怎么再del 这个输出结果?


这个明白了! 谢谢各位!
作者: tvzml     时间: 2008-7-9 02:09
rd /s/q  后面的变量为空白时,将删除全部文件,楼主要特别小心啊