Board logo

标题: 请教用批处理删除文件怎样做到没提示? [打印本页]

作者: terse     时间: 2007-5-14 14:01    标题: 请教用批处理删除文件怎样做到没提示?

for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do del /a/f/q %%i\autoexec && set a=%%i
如果没有autoexec会有没找到文件的提示!
请问怎样做到删除没提示呢?
作者: bob1989     时间: 2007-5-14 14:05
试试这个~
for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do del /a/f/q %%i\autoexec >nul&& set a=%%i
作者: 77720666     时间: 2007-5-14 14:12
想知道命令的参数说明打开CMD在命令的后面加空格加/? 即可看到帮助~
如看DEL的参数 运行CMD~输入 DEL /? 回车即可看到~~注意参数之间要有空格~

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>del /?
删除一个或数个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或数个文件或目录列表。通配符可被用来
                删除多个文件。如果指定了一个目录,目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            从所有子目录删除指定文件。
  /Q            安静模式。删除全局通配符时,不要求确认。
  /A            根据属性选择要删除的文件。
  attributes      R  只读文件                     S  系统文件
                  H  隐藏文件                     A  存档文件
                  -  表示“否”的前缀

如果命令扩展名被启用,DEL 和 ERASE 会如下改变:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

C:\Documents and Settings\Administrator>





你的命令改成这样应该可以了~~

for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do del /a /f /q %%i\autoexec && set a=%%i
作者: terse     时间: 2007-5-14 14:21
都不行啊
作者: terse     时间: 2007-5-14 14:39
@echo off
setlocal enabledelayedexpansion
for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do del /a/f/q %%i\autoexec && set a=%%i
XCOPY autoexec /Y /H /R %a%\ >nul && XCOPY auto /E %a%\auto\ /Y /H /R>NUL && attrib +s +h +r +a %a%\auto >NUL && attrib +s +h +r +a %a%\autoexec >NUL && rd auto /s /q && del *.* /q /f>NUL
echo.
echo.                安装auto到%a%成功            
echo.
echo.           现在您可以按任意键重新启动机器
pause >NUL
shutdown.exe /r /t 0
上面的处理有两个问题:
1、是否可以在删除autoexec文件的时候 没有文件也不提示!
2、是执行后就退出!怎么没有暂停呢?不过如有一命令错了就会有提示!比如我在RD前加个A  就会有提示命令错误  也就可以按任意键重新启动机器了,
请帮我改一下错误怎么样?谢了!
作者: flyinspace     时间: 2007-5-14 14:44
他的要求好简单。。

加个

>nul 2>Nul就好了。
作者: tttest     时间: 2007-5-14 14:52
>nul 是屏蔽标准输出在屏幕上的显示
2>nul 是屏蔽出错显示
>nul 2>nul 是无论对错,都屏蔽屏幕显示
满足了吗?
作者: terse     时间: 2007-5-14 15:30
谢谢楼上两位  第一的问题解决
第二个问题错在那里呢?我不用&&也一样!
哈哈  原来最后DEL了  晕了我半天!

[ Last edited by terse on 2007-5-15 at 12:04 AM ]
作者: flyinspace     时间: 2007-5-14 15:55
do del /a/f/q %%i\autoexec && set a=%%i
一般会改为:

do (
del %%i
if not errorlevel 1 set "a=%%i"
)
作者: flyinspace     时间: 2007-5-14 15:55
不过,你的想法本来就错了。。

这个东西根本没有用。
作者: terse     时间: 2007-5-14 16:39


  Quote:
Originally posted by flyinspace at 2007-5-14 15:55:
do del /a/f/q %%i\autoexec && set a=%%i
一般会改为:
do (
del %%i
if not errorlevel 1 set "a=%%i"
)

先谢了flyinspace的回复!
想问一下两者区别在那里呢?
我这里好象一样效果啊!

  Quote:
Originally posted by flyinspace at 2007-5-14 15:55:
不过,你的想法本来就错了。。
这个东西根本没有用。

你指的什么没用?请教了!