您的位置:首页 > 其它

05-CMD_for命令详解_变量

2013-07-14 11:51 204 查看
for命令中的变量

先把 FOR 的变量全部列出来:

~I - 删除任何引号("),扩展 %I

%~fI - 将 %I 扩展到一个完全合格的路径名

%~dI - 仅将 %I 扩展到一个驱动器号

%~pI - 仅将 %I 扩展到一个路径

%~nI - 仅将 %I 扩展到一个文件名

%~xI - 仅将 %I 扩展到一个文件扩展名

%~sI - 扩展的路径只含有短名

%~aI - 将 %I 扩展到文件的文件属性

%~tI - 将 %I 扩展到文件的日期/时间

%~zI - 将 %I 扩展到文件的大小

%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展

到找到的第一个完全合格的名称。如果环境变量名

未被定义,或者没有找到文件,此组合键会扩展到

空字符串

注意:

I 就是 for 声明的变量

一, %~I

作用:

删除任何引号("),扩展 %I

举例:

d:\cmd\03>echo "hello world!">temp.txt

d:\cmd\03>for /f "delims=" %i in (temp.txt) do @echo %~i

hello world!

d:\cmd\03>echo "I love You!!>>temp.txt

"I love You!!>>temp.txt

d:\cmd\03>echo ^"I love You!!>>temp.txt

d:\cmd\03>for /f "delims=" %i in (temp.txt) do @echo %~i

hello world!

I love You!!

d:\cmd\03>echo ^"Thank" you!!!">>temp.txt

d:\cmd\03>for /f "delims=" %i in (temp.txt) do @echo %~i

hello world!

I love You!!

Thank" you!!!

d:\cmd\03>echo ^"Thank" you!!!"!>>temp.txt

d:\cmd\03>for /f "delims=" %i in (temp.txt) do @echo %~i

hello world!

I love You!!

Thank" you!!!

Thank" you!!!"!

注意:

不成对的引号要加转义字符^ ,重定向符号前不要留空格

二, %~fI

作用:

将 %I 扩展到一个完全合格的路径名,

即, (打印) 该文件/目录 的绝对路径.

举例:

d:\cmd>dir /b

01

02

03

d:\cmd>for /f "delims==" %i in ('dir /b') do @echo %~fi

d:\cmd\01

d:\cmd\02

d:\cmd\03

三, %~dI

作用:

仅将 %I 扩展到一个驱动器号

即, (打印) 该文件/目录 所在的盘符.

举例:

d:\cmd>dir /b

01

02

03

d:\cmd>for /f "delims=" %i in ('dir /b') do @echo %~di

d:

d:

d:

四, %~pI

作用:

仅将 %I 扩展到一个路径

扩展后:绝对路径 - 文件名(带扩展名) - 盘符(带冒号)

即, d:\cmd\02\1.txt => \cmd\02\

举例:

d:\cmd\02>dir /b

1.bat

1.txt

d:\cmd\02>for /f "delims=" %i in ('dir /b') do @echo %~pi

\cmd\02\

\cmd\02\

五, %~nI

作用:

仅将 %I 扩展到一个文件名

即, (打印) 文件/目录 名字, 不带扩展名

举例:

d:\cmd\03>dir /b

dir

temp.txt

d:\cmd\03>for /f "delims=" %i in ('dir /b') do @echo %~ni

dir

temp

六, %~xI

作用:

仅将 %I 扩展到一个文件扩展名

即, (打印) 文件 的扩展名

举例:

d:\cmd\03>dir /b

dir

temp.txt

d:\cmd\03>for /f %i in ('dir /b') do @echo %~xi

ECHO 处于打开状态。

.txt

七, %~sI

作用:

扩展的路径只含有短名

即, 还是打印绝对路径

举例:

d:\cmd\03>dir /b

dir

temp.txt

d:\cmd\03>for /f %i in ('dir /b') do @echo %~si

d:\cmd\03\dir

d:\cmd\03\temp.txt

八, %~aI

作用:

将 %I 扩展到文件的文件属性

举例:

d:\cmd\03>dir /b

dir

temp.txt

d:\cmd\03>for /f %i in ('dir /b') do @echo %~ai

d--------

--a------

九, %~tI

作用:

将 %I 扩展到文件的日期/时间

举例:

D:\cmd\03>dir /b

dir

temp.txt

// 打印文件建立的日期

D:\cmd\03>for /f %i in ('dir /b') do @echo %~ti

2013/07/12 16:54

2013/07/12 16:29

十, %~zI

作用:

将 %I 扩展到文件的大小

举例:

D:\cmd\03>dir /b

dir

temp.txt

// 打印文件大小

D:\cmd\03>for /f %i in ('dir /b') do @echo %~zi

0

66



十一, %~$PATH:I

作用:

查找列在路径环境变量的目录,并将 %I 扩展

即, 在 Path环境变量中, 查找指定字符串, 有则返回"="右边的值.

举例:

存在=>

D:\cmd\03>for /f "delims=" %i in ("notepad.exe") do @echo %~$path:i

C:\Windows\System32\notepad.exe

不存在=>

D:\cmd\03>for /f "delims=" %i in ("notepad123.exe") do @echo %~$path:i

ECHO 处于打开状态。

说明:

在 PATH变量里指定的路径里搜索 notepad.exe文件,

如果有 notepad.exe则会把他所在绝对路径打印出来,

没有就打印一个错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: