标题: [求助]帮助分析一条语句?
[打印本页]
作者: tempuser
时间: 2008-3-25 09:43
标题: [求助]帮助分析一条语句?
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
拖动多个文件,为什么不能删除?
作者: sylovanas
时间: 2008-3-25 10:40
那样是针对%%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 ]
作者: regvip2008
时间: 2008-3-25 11:40
呵呵,楼上的方法确实可行!
作者: tempuser
时间: 2008-3-25 11:43
Quote: |
Originally posted by sylovanas at 2008-3-25 10:40:
那样是针对%%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 ] |
|
谢谢,测试后不行!
嘿嘿,一个小疏忽 c:\%%~nxi 两端应该加双引号,避免出现空格路径,就解决了.
作者: fuuma
时间: 2008-3-25 12:18
“我的问题是%~nx1的理解?
nx是否是代表文件名的全称:文件基本名+扩展名
1是否是代表第一个参数”
为什么我只在BAT里输入del "%~nx1" /f/s/q/a
就把同目录的文件都删了,而不是只删1个
作者: HAT
时间: 2008-3-25 13:09
Quote: |
“我的问题是%~nx1的理解?
nx是否是代表文件名的全称:文件基本名+扩展名
1是否是代表第一个参数” |
|
你的理解是正确的
Quote: |
为什么我只在BAT里输入del "%~nx1" /f/s/q/a
就把同目录的文件都删了,而不是只删1个 |
|
试试del "%~dp0\%~nx1"
作者: balinger
时间: 2008-3-25 14:26
Quote: |
Originally posted by fuuma at 2008-3-25 12:18 PM:
为什么我只在BAT里输入del "%~nx1" /f/s/q/a
就把同目录的文件都删了,而不是只删1个 |
|
直接运行BAT时,由于%1为空,%~nx1也为空,实际是 del "" /f/s/q/a。
del "" /f/s/q/a等同 del * /f/s/q/a,就把同目录的文件(含子目录文件)都删了。
del "%~dp0\%~nx1" 也一样的。
BAT里输入 del "" ,直接运行BAT后会看到删除所有的提示。
作者: fuuma
时间: 2008-3-25 15:37
谢谢,具体参数说明已经在C:\WINDOWS\Help\ntcmds.chm的
“使用批处理参数”中看到