![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 21:42 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 这些命令是什么意思 |
| 可打印版本 1,086 / 12 |
| 第1楼 MoFeng | 发表于 2006-12-31 07:04 |
| 新手上路 发帖 7 积分 16 | |
|
这些命令是什么意思 请問一下下面的是什么意思,在一些批处理中看到的,可是又不知是什么意思怎么用
(-) 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" 中的 ^| 表示什么意思,那个 ^ 能帮忙说得明白一点吗。 谢谢 |
|
| 第2楼 zh159 | 发表于 2006-12-31 09:26 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
1、试试去掉setlocal enabledelayedexpansion看看,或者去掉后把!n!换成%n%
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 其他的会用不会说,下面的接着... |
|
| 第3楼 dikex | 发表于 2006-12-31 11:43 |
| 高级用户 发帖 366 积分 788 | |
|
第五个前面应该还有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 ] |
|
| 第4楼 zh159 | 发表于 2006-12-31 12:00 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
ipconfig | find /i "ip"
是把执行ipconfig的信息传送给find查找带“ip”字符部分,不是echo ipconfig过去 好像^也叫转义字符 |
|
| 第5楼 MoFeng | 发表于 2006-12-31 12:43 |
| 新手上路 发帖 7 积分 16 | |
|
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 个文件 老是提示让你选。怎么才可以不用选直接复制过去。 |
|
| 第6楼 lxmxn | 发表于 2006-12-31 12:48 |
| 版主 发帖 4,938 积分 11,386 | |
|
|
|
| 第7楼 dikex | 发表于 2006-12-31 12:48 |
| 高级用户 发帖 366 积分 788 | |
|
^通常只在echo后面才会有用,作用是使得一些特殊字符(/,|,||,&)等按照他们原来的样子输出,你执行下面几个命令就会命令他的作用了
echo ^| 对比 echo | echo ^& 对比 echo & |
|
| 第8楼 dikex | 发表于 2006-12-31 12:49 |
| 高级用户 发帖 366 积分 788 | |
|
复制那个运行xcopy /?看看那些参数就知道了
|
|
| 第9楼 MoFeng | 发表于 2006-12-31 13:00 |
| 新手上路 发帖 7 积分 16 | |
Originally posted by lxmxn at 2006-12-30 11:48 PM: 那个不行。我试过了 可是错误信息是这样的。FOR语句可能有问题。不知错在哪。 目标 temp2\bootcfg.exe 是文件名 还是目录名 (F = 文件,D = 目录)? f temp\bootcfg.exe 复制了 1 个文件 |
|
| 第10楼 MoFeng | 发表于 2006-12-31 13:14 |
| 新手上路 发帖 7 积分 16 | |
|
又错了。学点东西可真不容易 显示自己的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 处于关闭状态。 这又是什么原因。 |
|
| 第11楼 lxmxn | 发表于 2006-12-31 13:23 |
| 版主 发帖 4,938 积分 11,386 | |
|
|
|
| 第12楼 vkill | 发表于 2007-01-01 01:07 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
问问题的时候怎么不先搜索那?
|
|
| 第13楼 MoFeng | 发表于 2007-01-01 01:17 |
| 新手上路 发帖 7 积分 16 | |
|
上面的问题可结了。原因找到了。谢谢 上面的问题可结了。原因找到了。谢谢
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |