Board logo

标题: [文件操作] 怎样实现拖动文件到批处理图标? [打印本页]

作者: firewolf85    时间: 2008-12-12 15:50     标题: 怎样实现拖动文件到批处理图标?

请教关于拖动文件到批处理可以实现的操作,比如可以给哪些变量赋上哪些值。请高手赐教
作者: wxcute    时间: 2008-12-12 17:15

用例子来说明罢
  1. @echo off
  2. echo %1
  3. pause
复制代码
拖放一个文件或目录到其上将会显示其完整路径。
这个批处理中标准参数就是 %1,代表的是拖入文件或目录的完整路径
其扩展的我们能用的可在 for /? 帮助中找到
另外,FOR 变量参照的替换已被增强。您现在可以使用下列
选项语法:

     ~I         - 删除任何引号("),扩充 %I
     %~fI        - 将 %I 扩充到一个完全合格的路径名
     %~dI        - 仅将 %I 扩充到一个驱动器号
     %~pI        - 仅将 %I 扩充到一个路径
     %~nI        - 仅将 %I 扩充到一个文件名
     %~xI        - 仅将 %I 扩充到一个文件扩展名
     %~sI        - 扩充的路径只含有短名
     %~aI        - 将 %I 扩充到文件的文件属性
     %~tI        - 将 %I 扩充到文件的日期/时间
     %~zI        - 将 %I 扩充到文件的大小
     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个完全合格的名称。如果环境变量名
                   未被定义,或者没有找到文件,此组合键会扩充到
                   空字符串

可以组合修饰符来得到多重结果:

     %~dpI       - 仅将 %I 扩充到一个驱动器号和路径
     %~nxI       - 仅将 %I 扩充到一个文件名和扩展名
     %~fsI       - 仅将 %I 扩充到一个带有短名的完整路径名
     %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
                   到找到的第一个驱动器号和路径。
     %~ftzaI     - 将 %I 扩充到类似输出线路的 DIR

彩色部分是我们常用的,自己可以 echo 测试下到底是什么。

所以相应的文件全名就用 %~nx1 表示,也就是把字母 I 换成数字 1 就行了,
相应的 %0 和 %2 到 %9 这些可用参数也用同样的方式来表达。

[ 本帖最后由 wxcute 于 2008-12-12 17:17 编辑 ]
作者: tireless    时间: 2008-12-12 17:21

%* 代表后面的所有参数
作者: bakdfkuk    时间: 2009-3-2 10:35     标题: 参数是不是只能是1%???

上面的回答能解决问题,但是对于拖动这个批处理中,如果把参数换成了2%或j%就不能完成了,是不是支持拖动的批处理中只能用1%这个参数呢?
作者: bakdfkuk    时间: 2009-3-2 15:37     标题: 怎么m人进来呢?

怎么m人进来呢!!!
作者: Batcher    时间: 2009-3-2 15:45     标题: 回复 4楼 的帖子

%0代表批处理文件本身,%1代表第一个位置参数,%2代表第二个位置参数,依此类推。如果仍有疑问,可参考批处理基础教程。

假设批处理C:\test_1.bat内容如下
  1. @echo off
  2. echo %0 %1 %2
复制代码
你可以在命令行窗口中执行
C:\test_1.bat hello_1 hello_2

将会得到结果:
test_1.bat hello_1 hello_2

另外一个例子:
test_2.bat
  1. @echo off
  2. call :SubFunction bbs bathome net
  3. pause
  4. goto :eof
  5. :SubFunction
  6. echo 第一个参数:%1
  7. echo 第二个参数:%2
  8. echo 第三个参数:%3
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2