- 浏览: 697535 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yzs5273:
没什么用。都试过了
WIN7下CS不能全屏的解决方法 -
di1984HIT:
不错,学习了
读取本地计算机中的安装程序列表 -
ffedu:
[flash=200,200][url][img][list] ...
linux/unix中如何用find命令详解,非常详细的介绍,比man find强100倍(转) -
lintghi:
...
Log4j使用相对路径指定log文件及使用总结 -
nick.s.ni:
唉,Java中引用的包没有介绍啊,如果数据库用UTF-8的格式 ...
Oracle 中Java 对象与PL/SQL类型的映射及使用(转)
先把FOR的变量全部列出来:
~I - 删除任何引号("),扩展 %I
%~fI
- 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器号
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I
扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI
- 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%~zI - 将 %I 扩展到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩展到
空字符串
我们可以看到每行都有一个大写字母"I",这个I其实就是我们在FOR带入
的变量,我们FOR语句代入的变量名是什么,这里就写什么.
比如:FOR /F %%z IN ('set') DO @echo %%z
这
里我们代入的变量名是z那么我们就要把那个I改成z,例如%~fI改为%~fz
至于前面的%~p这样的内容就是语法了!
好
开始讲解:
~I - 删除任何引号("),扩展 %I
这个变量的作用就如他的说明,删除引号!
我
们来看这个例子:
首先我们在桌面建立一个名字为temp.txt文本文件,在里面输入这些内容
"1111
2222"
"3333"
44"44
然
后在建立个BAT文件代码如下:
FOR /F "delims=" %%i IN (temp.txt) DO @echo
%%~i
pause
执行后,我们看CMD的回显如下:
1111
2222"
3333
44"44
和
之前temp.txt中的内容对比一下,我们会发现第一行和第三行的引号都消失了,这就是删除引号~i的作用了!
删除引号规则如下(BAT兄补
充!)
1、若字符串首尾同时存在引号,则删除首尾的引号;
2、若字符串尾不存在引号,则删除字符串首的引号;
3、如果字符串中间
存在引号,或者只在尾部存在引号,则不删除。
%~fI - 将 %I 扩展到一个完全合格的路径名
看
例子:
把代码保存放在随便哪个地方,我这里就放桌面吧.
FOR /F "delims==" %%i IN ('dir /b') DO
@echo %%~fi
pause
执行后显示内容如下
C:\Documents and
Settings\Administrator\桌面\test.bat
C:\Documents and
Settings\Administrator\桌面\test.vbs
当我把代码中的 %%~fi直接改成%%i
FOR /F
"delims==" %%i IN ('dir /b') DO @echo %%i
pause
执行后就会显示这些内容
test.bat
test.vbs
通
过对比,我们很容易就看出没有路径了,这就是"将 %I 扩展到一个完全合格的路径名"的作用
也就是如果%i变量的内容是一个文件名的话,他就会
把这个文件所在的绝对路径打印出来,而不只单
单打印一个文件名,自己动手动实验下就知道了!
%~dI -
仅将 %I 扩展到一个驱动器号
看例子:
代码如下,我还是放到桌面执行!
FOR /F "delims==" %%i IN
('dir /b') DO @echo %%~di
pause
执行后我CMD里显示如下
C:
C:
我桌面
就两个文件test.bat,test.vbs,%%~di作用是,如果变量%%i的内容是一个文件或者目录名,他就会把他这文件
或者目录所在的
盘符号打印出来!
%~pI - 仅将 %I 扩展到一个路径
这个用法和上面一样,他只打印路径不打印
文件名字
FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~pi
pause
我
就不打结果了,大家自己复制代码看结果吧,下面几个都是这么个用法,代码给出来,大家自己看结果吧!
%~nI
- 仅将 %I 扩展到一个文件名
只打印文件名字
FOR /F "delims==" %%i IN ('dir /b') DO
@echo %%~ni
pause
%~xI - 仅将 %I 扩展到一个文件扩展名
只
打印文件的扩展名
FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~xi
pause
%~sI
- 扩展的路径只含有短名
打印绝对短文件名
FOR /F "delims==" %%i IN ('dir
/b') DO @echo %%~si
pause
%~aI - 将 %I
扩展到文件的文件属性
打印文件的属性
FOR /F "delims==" %%i IN ('dir /b') DO @echo
%%~ai
pause
%~tI - 将 %I 扩展到文件的日期/时间
打印文件建立的日期
FOR
/F "delims==" %%i IN ('dir /b') DO @echo %%~ti
pause
%~zI
- 将 %I 扩展到文件的大小
打印文件的大小
FOR /F "delims==" %%i IN ('dir
/b') DO @echo %%~zi
pause
%~$PATH:I -
查找列在路径环境变量的目录,并将 %I 扩展
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩展到
空字符串
这
是最后一个,和上面那些都不一样,我单独说说!
我们先在桌面建立一个temp.txt文件,里面写上这些内容
c:\windows
c:\windows\system32
c:\windows\teett
然
后在把这些代码保存为批处理,放在桌面.
FOR /F "delims==" %%i IN (temp.txt) DO @echo
%%~$PATH:i
pause
执行后CMD显示如下内容
c:\WINDOWS
c:\WINDOWS\system32
ECHO
处于打开状态。
为什么会这样呢,还有一行c:\windows\teett呢?
我们直接在CMD里输入echo %path%
会显示C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
%%~$PATH:i
也就是在文本里寻找匹配这个PATH变量值的内容,如果里面的内容和PATH变量相同,就打印出来
如果不相同,就显示一个空行!
只
能适用于PATH变量,其他变量不行,如果要比较很多值,可尝试把值赋予给PATH变量,我没测试!
好了,FOR的的变量就介绍到这了!
---------------------------------------------
< type="text/javascript"><!-- google_ad_client = "pub-1992382271196226"; /* 728x90, 创建于 08-3-9 */ google_ad_slot = "1653402536"; google_ad_width = 728; google_ad_height = 90; // --> < src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
dos下面的批处理文件还是比较强大的,虽然刚开始觉得很不好用。遇到这么一个问题:用户输入一个新的版本号,解析其中的每个数字。例如一个版本号 是"5.4.6",则要用"."分割开,然后提取其中的每个数字。处理命令为:
@REM 首先提示用户输入字符串,如5.4.6
@set /p inputVersion=version
number:
FOR /F "tokens=1,2,3 delims=." %%a IN ("%inputVersion%") DO CALL
SETVERSION %%a %%b %%c
setversion则又是另外一个bat文件,如下所示:
@SET major=
@SET minor=
@SET tiny=
@SET major=%1
@SET minor=%2
@SET tiny=%3
dos中的for语句的do后面只能接一个命令,如果用goto的话,不知道参数怎么传递,所以只好调用另外 一个bat文件了。
对于上面的for语句要注意了。delims表示分隔 符,tokens表示分割后的哪些字符需要传递到for循环中,也就是要进行do后面的命令行处理。如果输入5.4.6,那么1表示5,2表示4,3表示 6,4就是空的了。如果tokens=1,则表示只把5传入do语句。如果tokens=1,2,3则表示4,5,6都要进行处理。奇怪的现象是,%%a 代表第一个字符串,而2、3个字符串则是默认由%%a增加,即%%b, %%c表示。不知道如果变量不是%%a,后面的变量会是怎么表示。
你还可以参看下面的例子,该例子引用自:http://www.ss64.com/nt/for_f.html
这个例子比windows帮助上的说明要详细。
Extracting data from this text file:
January,Snowy,02
February,Rainy,15
March,Sunny,25
FOR /F "tokens=1,3 delims=," %%G IN (weather.txt)
DO @echo %%G %%H
The tricky part is splitting up each the line into the right tokens, in
this case I'm splitting on the comma character ','
this splits the line into 3 chunks of text and we pull out the first and
third items with "tokens=1,3"
token1 , | token2 , | token3 |
%%G | <ignored> | %%H |
January | 02 | |
February | 15 | |
March | 25 |
%%G is declared in the FOR statement and %%H is implicitly
declared via the tokens= option. You can specify up to 26
tokens via the tokens=
line, provided this does not cause an attempt to declare a parameter
higher
than the letter 'Z'.
FOR parameter names are global, so in complex scripts which call
one FOR statement from within another FOR statement you can refer to
both sets
of parameters. You cannot have more than 26 parameters active at any
one time.
< type="text/javascript"><!-- google_ad_client = "pub-1992382271196226"; /* 728x15, 创建于 08-9-3 */ google_ad_slot = "9127232582"; google_ad_width = 728; google_ad_height = 15; // --> < src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
------------------------------------------------------------------------------------------------------
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
optinos
eol=c - 指
一个行注释字符的结尾(就一个)//要忽略以什么字符开头的行
skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指
分隔符集。这个替换了空格和跳格键的//指定分割的字符列入delims=;:.使用了";",":","."做分隔
默
认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本
身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符
号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分
配并接受行的保留文本。
usebackq - 指定新语法已在下类情况中使用:
在作
为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 filenameset
中
使用双引号扩起文件名称。
列子
for /f "tokens=1-3 delims=:." %1 in ("%time%") do @echo %1-%2-%3
截
断%time%返回的字符并替换
for /f "tokens=2 delims= " %1 in ("%date%") do @echo %1
截
断%date%返回的字符
用%date%+%time%
建立目录
指定的格式
2004-10-12@12-11
分
别是年-月-日@小时-分
for /f "tokens=2 delims= " %1 in ("%date%") do @set D=%1
for /f "tokens=1-3 delims=:." %1 in ("%time%") do @set T=%1-%2
mkdir "%D%@%T%"
完
整的bat
-----------------------------------------
@echo off
setlocal
for /f "tokens=2 delims= " %%1 in ("%date%") do @set D=%%1
for /f "tokens=1-3 delims=:." %%1 in ("%time%") do @set T=%%1-%%2
mkdir "%D%@%T%"
endlocal
@echo off
set pwd=%cd%
set projects=project1,project2
for %%i in (%projects%) do @cd %pwd%\%%i&mvn clean install eclipse:clean eclipse:eclipse -Dmaven.test.skip
pause
发表评论
-
Do POST with CURL
2016-01-18 16:58 0th fields: curl --data " ... -
DOS Command to remove shortcut arrow and add open command window here
2015-07-30 14:56 540@echo off echo. echo Removin ... -
How to Enable “Open Command Window Here” Option in Context Menu in Windows Vista
2015-07-29 19:58 935In Windows Vista and later, if ... -
Shell script for stress testing
2014-10-23 00:05 789ParseInstance() { Files=`f ... -
Shell操作字符串
2014-08-19 09:42 652在做shell批处理程序时候,经常会涉及到字符串相关操作 ... -
Linux设置shell提示符的方法
2014-05-16 16:52 736转自: http://www.linuxsong.org/2 ... -
Win7 - Failed to set image as wallpaper
2014-04-29 12:02 886Problem: Right click on an im ... -
JBoss 6.0.0 Final 启动慢且占用大量内存的解决方法
2014-02-22 22:53 13551. Patch jboss.jar (Can be op ... -
Linux Used内存到底哪里去了
2014-02-22 15:31 871原创文章,转载请注明: 转载自系统技术非业余研究 本文 ... -
Killing process via shell script
2014-02-14 15:59 508#!/bin/sh #Check input parame ... -
Install Chocolatey when you access Internet via proxy
2014-01-24 16:43 1159Modify install.ps1 like bel ... -
Startup script for configuring a workstation
2014-01-24 16:29 800@echo off ping -n 100 127 ... -
Shell skills take away
2014-01-16 17:45 7961. Empty log files in batch ... -
Building a java classpath from a windows batch file (Reposted)
2014-01-06 16:10 873A great feature introduced wi ... -
Shell操作数组
2014-01-03 19:20 958#pids=(123 345 678)pids=$(ps -e ... -
shell参数传递有空格的问题
2013-12-27 19:34 5772$# 传给脚本的参数个数$0 脚本本身的名字$1 传递给该s ... -
Shell Usage Sample
2013-12-27 19:08 1266Sample 1: if [ $# -ne 1 ] t ... -
用shell判断一个字符串是不是全为数字 & 取字符串的第N个字符(转)
2013-12-27 18:57 1620(1)判断一个字符串是不是全为数字 01 ... -
基本正则表达式和扩展正则表达式的区别
2013-12-23 09:31 1486sed默认的匹配方式是基本正则表达式,用基本正则表达式匹配时. ... -
Delete file with name start with dash
2013-11-25 11:52 853Sample file name: -a 1. rm - ...
相关推荐
- 在CMD文件中,你可以使用各种DOS命令,如`copy`, `del`, `mkdir`, `ren`等,以及批处理特定的命令,如`if`, `for`, `call`等。 2. **为什么要转为EXE**: - 隐藏命令:将批处理文件转换为EXE可以隐藏脚本中的...
需要注意的是,批处理文件中形式变量的引用需使用双百分号`%%I`,而在cmd窗口中则使用单百分号`%I`。 for循环的构成元素包括: 1. 关键字`for`,标志着循环的开始。 2. 形式变量,如`%%I`,在循环中用来存储每次...
【透明的CMD命令】是一种在Windows XP之后的操作系统版本中使用的高级技巧,它允许用户创建一个具有透明效果的命令提示符窗口,即CMD。这种透明CMD不仅提供了与传统CMD相同的功能,如执行批处理脚本、系统管理命令等...
在C#环境中,如果你需要与Android开发相关联,可以使用Mono for Android或者Xamarin.Android这样的框架。 总结来说,C# WinForm执行CMD命令是一个实用的功能,允许用户在图形界面上调用系统命令,增强了应用程序的...
然而,有一些方法可以让Windows用户在CMD中使用这些工具,例如通过安装开源的Cygwin、MSYS2或Git for Windows(带Bash shell)等环境。这些工具集不仅包含了类似于“grep”的命令,还提供了许多其他Linux命令的实现...
### CMD命令大全for Win7 在Windows 7操作系统中,CMD(命令提示符)是一个非常强大的工具,可以用来执行各种命令来管理和维护系统。本文将详细介绍一些常用的CMD命令及其用法,帮助用户更好地掌握和利用这些命令。...
在Windows操作系统中,`cmd`(命令提示符)是一个强大的工具,它允许用户通过命令行交互方式执行各种系统操作。...通过不断实践和探索,你会发现更多使用管道技术的创新方法,进一步提升你的`cmd`操作技巧。
- 解决方法:确保CMD是来自官方的更新版本,或联系安全软件提供商获取解决方案。 3. CMD的权限与提升: - 提权:使用`runas`命令以管理员权限运行命令,如`runas /user:Administrator cmd`。 - UAC(用户账户...
本文将详细介绍CMD命令及其各种参数的使用方法。 #### 命令概述 CMD支持多种参数配置,这些参数可以控制CMD的行为特性,例如命令解释方式、命令提示符设置等。通过合理的参数组合,用户可以根据实际需求定制个性化...
CMD命令速查手册详细列举了这些命令的使用方法、参数和实例,对于日常的系统管理和问题排查非常有用。熟练掌握CMD命令,不仅可以提高工作效率,也能在没有图形界面的环境中应对自如。通过深入学习和实践,你可以更好...
要实现CMD功能,我们需要重点掌握`Run`方法,它可以执行外部命令,类似于CMD中的`cmd.exe /c`命令。 示例: ```vbscript Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd /c dir", 1,...
**CMD基本用法** 1. **启动CMD**:可以通过搜索栏输入“cmd”或者在运行对话框(Win+R)中输入“cmd”来打开命令提示符窗口。 2. **命令格式**:命令通常由命令名、参数和选项组成,如`dir /w`,其中`dir`是命令名...
在编写批处理脚本时,CMD命令也发挥着重要作用,例如使用`if`进行条件判断,`set`设置环境变量,`call`调用其他批处理文件,以及`goto`进行流程跳转等。 `CMD命令大全.htm`文件可能详细列出了这些命令的用法、参数...
根据提供的文件信息,可以看出这是一份关于Windows命令行(CMD)命令的大全列表。下面将对这些命令进行详细的解释和说明: ### CMD命令大全 #### 1. ipconfig **功能:** 显示所有网络适配器的 IP 地址、子网掩码...
下面将详细解释如何使用Java调用CMD来创建目录和复制文件。 首先,我们需要了解CMD中的命令。在Windows CMD中,我们可以使用`mkdir`命令创建目录,`copy`命令复制文件。例如,创建一个名为“我的文件夹”的目录,...
然而,在使用CMD的过程中,可能会遇到各种各样的错误,这些错误往往会影响到用户的正常使用。本文将针对“处理电脑中CMD窗口错误”这一主题进行详细讲解,帮助用户更好地理解和解决这些问题。 ### 一、CMD窗口常见...
这里我们将深入探讨两种实现变量自增的方法,这些方法都可以在CMD命令行环境中通过for循环来完成。 首先,理解for循环的基本语法至关重要。在BAT文件中,for循环通常用于遍历文件、目录或执行一系列操作。例如,...
VBS(Visual Basic Script)和CMD(Command Prompt)是两种在Windows操作系统中广泛使用的脚本语言和命令行工具。它们各自都有丰富的功能,用于自动化任务、系统管理以及执行各种操作。 1. **VBScript(Visual ...
描述中提到的"压缩包内有使用说明",意味着在`cmd_ping_addtime`这个压缩包中,可能包含了一个这样的批处理脚本和相关的说明文档。使用时,用户需要解压文件,查看说明,然后运行批处理脚本,或者根据脚本内容自行...