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

[原创] 浅谈批处理命令for中的变量扩展

浅谈for命令中的变量扩展
       首先表明本人并不赞同用变量扩展这个概念,因为用这个概念是不利于新手的理
解的。同时本人认为用保留变量信息这个概念可能更为贴切,我们姑且先如此定义
吧。
       新手们可能在别人的代码中见过%%~ni %%~xi %%~dpi这样的字符,于是很多新手
于是发问了:这个东东是什么啊?老手们便丢下一句话“变量扩展”或写下for /?。
有心一点的新手便会打开cmd输入for /?来查看帮助信息,结果往往是看得一头雾水,
不知道仍是不知道,今天我们就来解决这个问题了。
      大家先用以下代码搭建好以下环境:
  1. @echo off
  2. md d:\temp
  3. cd.>d:\temp\abcd.efgh
  4. start d:\temp
复制代码
再在当前目录中新建test.bat,内容如下:
  1. @echo off
  2. for /f %%a in ('dir /s /b a*') do (
  3.     echo %%a:文件完整信息
  4.     echo %%~da:保留文件所在驱动器信息
  5.     echo %%~pa:保留文件所在路径信息
  6.     echo %%~na:保留文件名信息
  7.     echo %%~xa:保留文件后缀信息
  8.     echo %%~za:保留文件大小信息
  9.     echo %%~ta:保留文件修改时间信息
  10.     echo %%~dpa:保留文件所在驱动器和所在路径信息
  11.     echo %%~nxa:保留文件名及后缀信息
  12.     echo %%~pnxa:保留文件所在路径及文件名和后缀信息
  13.     echo %%~dpna:保留文件驱动器、路径、文件名信息
  14.     echo %%~dpnxa:保留文件驱动器、路径、文件名、后缀信息
  15. )
  16. pause>nul
复制代码
运行这个批处理大家就会明白了。。。
       大家只要记住在这其中d p n x (t z)这些字符分别是代表的是什么意思就可以了,
同时这些字符是可以互相任意搭配的,如%%~dzxa主要看你想保留下文件(变
量)的哪些信息了。
***共同提高***

抢个沙发先
D是drive
P是path
n是name
x是后缀?
z是size?
t是time?
就能猜出那么多

虽说变量拓展难懂,但是很有用哦...

TOP

x ....extension?
心绪平和,眼藏静谧。

TOP

%%~a、%%~fa?

TOP

cn-dos太大了,东西很多。

重温p处理,bathome很不错哦。

以前不理解的现在豁然开朗。

TOP

很不错,通过示例代码 将复杂的东西 展示出来,通俗易懂,很方便我等学习进步啊。CMD里面的解释真差,看了还是不知道如何运用。还是这个好。谢谢,希望以后多点这样的 示例代码 教学帖子。

TOP

老规矩,上课签到~~~

TOP

哈哈 我也来上楼主的课咯
嗯 不错不错

TOP

只对DIR命令有效?

可以不可以多举几个例子?

TOP

学习,最喜欢看你的帖
详细,易懂

TOP

想知道4楼的

%%~a、%%~fa 代表什么?

TOP

回复 11楼 的帖子

for /?
In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

真的很强大的!学习ing

TOP

后缀是suffix,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

TOP

谢谢man了,我现在终于懂了,以前总是看不懂
是非只因多开口,烦恼皆因强出头。

TOP

返回列表