标题: 这些命令是什么意思
[打印本页]
作者: MoFeng
时间: 2006-12-31 07:04
标题: 这些命令是什么意思
请問一下下面的是什么意思,在一些批处理中看到的,可是又不知是什么意思怎么用
(-) setlocal enabledelayedexpansion
看意思应该是设置变量的。可是用这个有什么用,我觉得不加这句也没什么的啊
(二) ping -n 1 127.1>nul
这个是什么意思,后面的 nul 在好多批处理中看到了。是“什么都不做的意思吗”
(三)
echo/
echo\
看到这个有点奇怪,是什么意思
(四)这是一个BAT文件。
按扩展名分类.bat
for %%i in (*) do (md %%~xi
move *%%~xi %%~xi)
pause
这个后面的(md %%~xi move *%%~xi %%~xi) 是什么意思。
(五)
ipconfig ^| find /i "ip" 中的 ^| 表示什么意思,那个 ^ 能帮忙说得明白一点吗。
谢谢
作者: zh159
时间: 2006-12-31 09:26
1、试试去掉setlocal enabledelayedexpansion看看,或者去掉后把!n!换成%n%
@echo off
setlocal enabledelayedexpansion
for %%n in (a b c d e f) do (
set /a N+=1
echo %%n!n!)
set a=10
set b=a
echo !%b%!
echo/
echo\
pause
exit
2、
>nul,将显示内容输出到空设备(nul),也就是不显示
4、
多试试命令的这种用法:for/?
另外,FOR 变量参照的替换已被增强。您现在可以使用下列
选项语法:
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串
可以组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
其他的会用不会说,下面的接着...
作者: dikex
时间: 2006-12-31 11:43
第五个前面应该还有echo吧,而且后面跟着>或者>>文件名,完整的应该是类似这样的:
echo ipconfig ^| find /i "ip" >>a.bat
这个运行的结果是把 ipconfig | find /i "ip" 这个语句添加到a.bat文件里面
由于|是一个特殊的符号,直接echo ipconfig | find /i "ip" >>a.bat的或是得不到想要的效果的,而^的作用是把特殊符号按照原来的样子输入,如:
echo ^<
::显示<
echo ^>
::显示>
Last edited by dikex on 2006-12-30 at 10:45 PM ]
作者: zh159
时间: 2006-12-31 12:00
ipconfig | find /i "ip"
是把执行ipconfig的信息传送给find查找带“ip”字符部分,不是echo ipconfig过去
好像^也叫转义字符
作者: MoFeng
时间: 2006-12-31 12:43
ipconfig ^| find /i "ip" 中的 ^| 表示什么意思,那个 ^ 能帮忙说得明白一点吗
又有问题了
我的目的是要把一些.exe文件从一个文件夹中拷到另一个文件中,文件名在一个文本文件中。
for /f "tokens=4" %%i in ('type sys32中多加的文件名.txt ^| find /i ".exe"')do xcopy temp\%%~nxi temp2\%%~nxi
为什么会这样
目标 temp2\bootcfg.exe 是文件名
还是目录名
(F = 文件,D = 目录)? f
temp\bootcfg.exe
复制了 1 个文件
老是提示让你选。怎么才可以不用选直接复制过去。
作者: lxmxn
时间: 2006-12-31 12:48
xcopy /I temp\%%~nxi temp2\%%~nxi
作者: dikex
时间: 2006-12-31 12:48
^通常只在echo后面才会有用,作用是使得一些特殊字符(/,|,||,&)等按照他们原来的样子输出,你执行下面几个命令就会命令他的作用了
echo ^| 对比 echo |
echo ^& 对比 echo &
作者: dikex
时间: 2006-12-31 12:49
复制那个运行xcopy /?看看那些参数就知道了
作者: MoFeng
时间: 2006-12-31 13:00
Originally posted by lxmxn at 2006-12-30 11:48 PM:
xcopy /I temp\%%~nxi temp2\%%~nxi
那个不行。我试过了
可是错误信息是这样的。FOR语句可能有问题。不知错在哪。
目标 temp2\bootcfg.exe 是文件名
还是目录名
(F = 文件,D = 目录)? f
temp\bootcfg.exe
复制了 1 个文件
作者: MoFeng
时间: 2006-12-31 13:14
标题: 又错了。学点东西可真不容易
显示自己的IP.bat
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip%
pause
这个能行。可为什么这个不行呢
@echo off
for /f "usebackq tokens=15" %%i in ('"ipconfig ^| find /i "ip address""') do set
ip=%%i
echo %ip%
pause
显示的是
ECHO 处于关闭状态。
这又是什么原因。
作者: lxmxn
时间: 2006-12-31 13:23
@echo off&(for /f "usebackq tokens=2 delims=:" %%i in (`ipconfig ^| find /i "ip address"`) do set ip=%%i)&call echo %%ip%%&pause
作者: vkill
时间: 2007-1-1 01:07
问问题的时候怎么不先搜索那?
作者: MoFeng
时间: 2007-1-1 01:17
标题: 上面的问题可结了。原因找到了。谢谢
上面的问题可结了。原因找到了。谢谢