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
举例:
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!!!"!
注意:
不成对的引号要加转义字符^ ,重定向符号前不要留空格
将 %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
仅将 %I 扩展到一个驱动器号
即, (打印) 该文件/目录 所在的盘符.
举例:
d:\cmd>dir /b
01
02
03
d:\cmd>for /f "delims=" %i in ('dir /b') do @echo %~di
d:
d:
d:
仅将 %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\
仅将 %I 扩展到一个文件名
即, (打印) 文件/目录 名字, 不带扩展名
举例:
d:\cmd\03>dir /b
dir
temp.txt
d:\cmd\03>for /f "delims=" %i in ('dir /b') do @echo %~ni
dir
temp
仅将 %I 扩展到一个文件扩展名
即, (打印) 文件 的扩展名
举例:
d:\cmd\03>dir /b
dir
temp.txt
d:\cmd\03>for /f %i in ('dir /b') do @echo %~xi
ECHO 处于打开状态。
.txt
扩展的路径只含有短名
即, 还是打印绝对路径
举例:
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
将 %I 扩展到文件的文件属性
举例:
d:\cmd\03>dir /b
dir
temp.txt
d:\cmd\03>for /f %i in ('dir /b') do @echo %~ai
d--------
--a------
将 %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
将 %I 扩展到文件的大小
举例:
D:\cmd\03>dir /b
dir
temp.txt
// 打印文件大小
D:\cmd\03>for /f %i in ('dir /b') do @echo %~zi
0
66
查找列在路径环境变量的目录,并将 %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则会把他所在绝对路径打印出来,
没有就打印一个错误
先把 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则会把他所在绝对路径打印出来,
没有就打印一个错误
相关文章推荐
- 04-CMD_for命令详解_参数
- [CMD] FOR命令中的变量
- dos命令之 set (显示、设置或删除 cmd.exe 环境变量) 用法详解以及使用变量
- CMD文件中用FOR命令读取文本文件内容到变量,以及和PsExec搭配使用的方法和例子
- cmd的forfiles命令详解
- 批处理for命令详解(转)
- CMD命令详解——磁盘类命令
- 常用DOS命令详解- CMD
- 批处理for命令详解(转)
- PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
- linux export命令参数及用法详解--linux设置环境变量命令
- ASMCMD 命令详解
- CMD命令详解——文件操作类
- 运行CMD 查看端口命令及端口功能详解
- 查看环境变量的命令:运行-cmd-set
- RAR for Linux 命令详解
- cmd一些命令详解
- ASMCMD 命令详解
- 转:批处理for命令详解
- DOS循环:for命令详解