![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 00:41 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]帮助分析一条语句? |
| 可打印版本 699 / 7 |
| 第1楼 tempuser | 发表于 2008-03-25 09:43 |
| 高级用户 发帖 261 积分 547 | |
|
[求助]帮助分析一条语句? del c:\"%~nx1" /f/s/q/a
我的问题是%~nx1的理解? nx是否是代表文件名的全称:文件基本名+扩展名 1是否是代表第一个参数 del c:\"%~nx1" /f/s/q/a是一个bat的内容,那么拖动一个文件到这个bat文件的图表下,就表示它是第一个参数,立刻被删除. 那么,增加一行: del c:\"%~nx2" /f/s/q/a 就可以删除2个文件了,但我想多删除几个,我用 for /l %%i in (1,1,9) do del c:\"%%~nxi" /f/s/q/a 拖动多个文件,为什么不能删除? |
|
| 第2楼 sylovanas | 发表于 2008-03-25 10:40 |
| 初级用户 发帖 42 积分 107 | |
|
那样是针对%%i而已没有针对%1-%9
这样试看看没测试 for %%i in (%*) do echo del c:\%%~nxi ^/f ^/s ^/q ^/a 测正常的话就将echo和^去掉 [ Last edited by sylovanas on 2008-3-25 at 10:42 AM ] |
|
| 第3楼 regvip2008 | 发表于 2008-03-25 11:40 |
| 初级用户 发帖 87 积分 187 | |
|
呵呵,楼上的方法确实可行!
|
|
| 第4楼 tempuser | 发表于 2008-03-25 11:43 |
| 高级用户 发帖 261 积分 547 | |
Originally posted by sylovanas at 2008-3-25 10:40: 谢谢,测试后不行! 嘿嘿,一个小疏忽 c:\%%~nxi 两端应该加双引号,避免出现空格路径,就解决了. |
|
| 第5楼 fuuma | 发表于 2008-03-25 12:18 |
| 初级用户 发帖 14 积分 32 | |
|
“我的问题是%~nx1的理解?
nx是否是代表文件名的全称:文件基本名+扩展名 1是否是代表第一个参数” 为什么我只在BAT里输入del "%~nx1" /f/s/q/a 就把同目录的文件都删了,而不是只删1个 |
|
| 第6楼 HAT | 发表于 2008-03-25 13:09 |
| 版主 发帖 5,017 积分 9,023 | |
“我的问题是%~nx1的理解? 你的理解是正确的 为什么我只在BAT里输入del "%~nx1" /f/s/q/a 试试del "%~dp0\%~nx1" |
|
| 第7楼 balinger | 发表于 2008-03-25 14:26 |
| 中级用户 发帖 115 积分 356 | |
Originally posted by fuuma at 2008-3-25 12:18 PM: 直接运行BAT时,由于%1为空,%~nx1也为空,实际是 del "" /f/s/q/a。 del "" /f/s/q/a等同 del * /f/s/q/a,就把同目录的文件(含子目录文件)都删了。 del "%~dp0\%~nx1" 也一样的。 BAT里输入 del "" ,直接运行BAT后会看到删除所有的提示。 |
|
| 第8楼 fuuma | 发表于 2008-03-25 15:37 |
| 初级用户 发帖 14 积分 32 | |
|
谢谢,具体参数说明已经在C:\WINDOWS\Help\ntcmds.chm的
“使用批处理参数”中看到 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |