找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31585|回复: 9

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

[复制链接]
发表于 2014-1-19 21:34:33 | 显示全部楼层 |阅读模式
%~f0        - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件) ...........?
如题,老是搞不清,有人可以告诉么? 谢谢
发表于 2014-1-20 09:43:22 | 显示全部楼层
  1. @echo off
  2. echo %0
  3. echo %~f0
  4. pause
复制代码
执行一下看看能否理解
发表于 2014-1-20 10:13:46 | 显示全部楼层
学习了,解答很好啊
发表于 2014-1-20 10:15:11 | 显示全部楼层
%~f0的f不是指【file】,而是指【full】(全部),这句话的意思是指列出执行中的那个批处理本身的全部路径【全部路径是包含:盘符(C:)路径(windows\批处理)文件名(test)和后缀名(.bat)】而%~f0中的~是去除括号的意思。
发表于 2014-1-20 11:12:42 | 显示全部楼层
回复 4# away


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

不是去除括号
是去除双引号
发表于 2014-1-20 11:19:32 | 显示全部楼层
"C:\Users\Administrator\Desktop\新建 Windows 批处理文件.bat"
C:\Users\Administrator\Desktop\新建 Windows 批处理文件.bat

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


    谢谢纠正
 楼主| 发表于 2014-1-21 21:53:37 | 显示全部楼层
原來是這樣啊! 多謝版主和樓上各位的熱心解答
发表于 2014-1-25 20:47:22 | 显示全部楼层
http://bbs.bathome.net/thread-1205-1-1.html

应该看看这个  我也在学习
 楼主| 发表于 2014-1-26 13:08:06 | 显示全部楼层
应该看看这个  我也在学习
simon4055 发表于 2014-1-25 20:47



    其實我在發貼前都有搜索過,但是實例比較少,所以才在這問問大家,話說這裡的氣氛真好,謝謝simon4055 啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:06 , Processed in 0.032781 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表