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

[文本处理] 请问BAT批处理%0与%f 的分别?

%~f0        - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件) ...........?
如题,老是搞不清,有人可以告诉么? 谢谢
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

  1. @echo off
  2. echo %0
  3. echo %~f0
  4. pause
复制代码
执行一下看看能否理解

TOP

学习了,解答很好啊

TOP

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

TOP

回复 4# away


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

不是去除括号
是去除双引号

TOP

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

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

TOP

回复 5# DAIC


    谢谢纠正

TOP

原來是這樣啊! 多謝版主和樓上各位的熱心解答
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

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

应该看看这个  我也在学习

TOP

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



    其實我在發貼前都有搜索過,但是實例比較少,所以才在這問問大家,話說這裡的氣氛真好,謝謝simon4055 啊
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

返回列表