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


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

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

作者: ixxxxyou     时间: 2008-7-1 16:43
Originally posted by quya at 2008-7-1 08:22 AM:


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

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



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






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


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




这个明白了! 谢谢各位!

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