Board logo

标题: [文本处理] 请问BAT批处理%0与%f 的分别? [打印本页]

作者: keiamy    时间: 2014-1-19 21:34     标题: 请问BAT批处理%0与%f 的分别?

%~f0        - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件) ...........?
如题,老是搞不清,有人可以告诉么? 谢谢
作者: DAIC    时间: 2014-1-20 09:43

  1. @echo off
  2. echo %0
  3. echo %~f0
  4. pause
复制代码
执行一下看看能否理解
作者: 雨の交响乐    时间: 2014-1-20 10:13

学习了,解答很好啊
作者: away    时间: 2014-1-20 10:15

%~f0的f不是指【file】,而是指【full】(全部),这句话的意思是指列出执行中的那个批处理本身的全部路径【全部路径是包含:盘符(C:)路径(windows\批处理)文件名(test)和后缀名(.bat)】而%~f0中的~是去除括号的意思。
作者: DAIC    时间: 2014-1-20 11:12

回复 4# away


而%~f0中的~是去除括号的意思

不是去除括号
是去除双引号
作者: cjiabing    时间: 2014-1-20 11:19

"C:\Users\Administrator\Desktop\新建 Windows 批处理文件.bat"
C:\Users\Administrator\Desktop\新建 Windows 批处理文件.bat

这是二楼代码执行结果,两者是一致的。双引号的产生是因为“ %~I          - 删除任何引号("),扩展 %I”。
而%~fI的原意是指“- 将 %I 扩展到一个完全合格的路径名”,即The fully qualified path name。
所以,就结果而言,两者差别不大。但在使用中则有明显区别:
%~fI 比较稳定,显示批处理文件自身的完整路径名。
而%0则根据环境变化,一般情况下它显示批处理文件自身的完整路径名。但在call标签时,它显示的是标签名。
作者: away    时间: 2014-1-20 23:00

回复 5# DAIC


    谢谢纠正
作者: keiamy    时间: 2014-1-21 21:53

原來是這樣啊! 多謝版主和樓上各位的熱心解答
作者: simon4055    时间: 2014-1-25 20:47

http://bbs.bathome.net/thread-1205-1-1.html

应该看看这个  我也在学习
作者: keiamy    时间: 2014-1-26 13:08

应该看看这个  我也在学习
simon4055 发表于 2014-1-25 20:47



    其實我在發貼前都有搜索過,但是實例比較少,所以才在這問問大家,話說這裡的氣氛真好,謝謝simon4055 啊




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