![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 09:53 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 无法删除文件 (有空格) 解决了 |
| 可打印版本 1,399 / 11 |
| 第1楼 huzixuan | 发表于 2007-01-31 00:10 |
| 高级用户 发帖 219 积分 537 来自 芜湖 | |
|
无法删除文件 (有空格) 解决了 @echo off
if not "%1"=="" ( del "%1" pause ) else ( echo. echo 请拖入准备删除的文件到这个BAT echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. echo 注意: 文件名中不能有空格!! echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. echo. pause ) ” 帮忙~~转换一下BAT的效果~~ 我写了一个BAT,把需要删除的文件拖到这个BAT文件上,就会自动删除,如果双击这个BAT文件,会有帮助。但是我想要成这样的效果: 打开这个BAT文件,有帮助显示,然后再拖待删除的文件到这个BAT窗口上,然后再删除。。。不知道怎么修改代码。。 “ 经测试,以上代码在删除 有 空格的路径或文件名 时,会出错。 并且不知道如何才能删除 有 空格的路径或文件名 ...... @echo off if not "%~1"=="" ( del %1 pause ) else ( echo. echo 请拖入准备删除的文件到这个BAT echo. pause ) 感谢大家的帮助 [ Last edited by huzixuan on 2007-1-31 at 03:55 AM ] |
|
| 第2楼 NaturalJ0 | 发表于 2007-01-31 00:15 |
| 银牌会员 发帖 533 积分 1,181 | |
|
用引号,像这样。
"C:\Documents and Settings\J\桌面\apploc.msi" |
|
| 第3楼 electronixtar | 发表于 2007-01-31 00:25 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
如果没记错的话
if not "%1"=="" 改成 if not [%1]==[] |
|
| 第4楼 NaturalJ0 | 发表于 2007-01-31 00:29 |
| 银牌会员 发帖 533 积分 1,181 | |
|
我在上面回的不对,改成这样。
if not "%~1"=="" |
|
| 第5楼 huzixuan | 发表于 2007-01-31 00:38 |
| 高级用户 发帖 219 积分 537 来自 芜湖 | |
|
@echo off
if not [%1]==[] ( del "%1" pause ) else ( echo. echo 请拖入准备删除的文件到这个BAT echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. echo 注意: 文件名中不能有空格!! echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo. echo. pause ) 还是不行哦 |
|
| 第6楼 redtek | 发表于 2007-01-31 01:04 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
兄这条命令 del "%1" 本意中是正确的~:)
但是,将一个文件托入你的批处理时,这个批处理所获得的 %1 参数(就是被你托进来的文件名)是被系统加上引号的。 所以,当你的 del "%1" 再遇上好心的 Windows 系统默认还要获得的 %1 再加一层引号,就形成了 del ""要被删除的文件名"",自然就出错了:) 关于含有空格的路径与短文件名路径以及与兄提及的相关内容,详见 For /? 。 ) 如果发现这样的问题? 不需要经验,只需要以下面原理测试一下,就可以一应百的解决类似问题或是发现此类问题(解决问题的方法和过程): (在桌面上运行) 运行时对比一下就了解它们的特性了~:) [ Last edited by redtek on 2007-1-30 at 12:08 PM ] |
|
| 第7楼 redtek | 发表于 2007-01-31 01:21 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
) 分析为什么 DEL ""含有空格路径的文件名或是含有空格的文件名"" 会发生 “找不到文件” 的错误?
看下面例子:
所以,错误是这样发生的:) 根据上面出错的原理,所以下面操作是正确的:
【 正文检索主题词: 含有空格 含有空格的路径 空格路径 引号 %~sI 短名 】 [ Last edited by redtek on 2007-1-30 at 12:29 PM ] |
|
| 第8楼 huzixuan | 发表于 2007-01-31 01:27 |
| 高级用户 发帖 219 积分 537 来自 芜湖 | |
|
哦!感谢 redtek 兄 的帮助.
但是看完过后,还是不晓得怎么写.......... |
|
| 第9楼 mygoldnet | 发表于 2007-01-31 01:32 |
| 初级用户 发帖 32 积分 90 | |
|
哈哈
直接试试 |
|
| 第10楼 NaturalJ0 | 发表于 2007-01-31 02:41 |
| 银牌会员 发帖 533 积分 1,181 | |
|
@echo off
if not "%~1"=="" ( del %1 pause ) else ( echo. echo 请拖入准备删除的文件到这个BAT echo. pause ) |
|
| 第11楼 huzixuan | 发表于 2007-02-08 02:10 |
| 高级用户 发帖 219 积分 537 来自 芜湖 | |
|
今天无事.忽又想起这个问题.
转回又看了一遍,竟觉得是 恍然大悟,实在是感谢兄门的帮助. 尤其是 redtek 兄的详解. |
|
| 第12楼 gne3 | 发表于 2007-02-14 01:30 |
| 高级用户 发帖 252 积分 526 | |
|
顶啊,好啊
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |