[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 怎样实现拖动文件到批处理图标?

请教关于拖动文件到批处理可以实现的操作,比如可以给哪些变量赋上哪些值。请高手赐教

用例子来说明罢
  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 编辑 ]
1

评分人数

TOP

%* 代表后面的所有参数

TOP

参数是不是只能是1%???

上面的回答能解决问题,但是对于拖动这个批处理中,如果把参数换成了2%或j%就不能完成了,是不是支持拖动的批处理中只能用1%这个参数呢?

TOP

怎么m人进来呢?

怎么m人进来呢!!!

TOP

回复 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
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表