DOS中批处理命令for命令和get命令如何使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOS中批处理命令for命令和get命令如何使用相关的知识,希望对你有一定的参考价值。
求详解,不会的就不要答了!set,不是get,手误~~~
for %%i in (*.mp3) do (ren %%i %i:~-7%)
目的是把当前目录中所有的mp3文件改名为原文件的后3位(加“.mp3”正好7位),但命令不正确。问题主要在于%i:~-7%不能正确将参数i作为字符串处理。
for %%i in (*.mp3) do (set a=%%i
ren %%i %a:~-7%)
如上修改后set不能正确将i的值赋予a。
求解
for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
在dos窗口里输入 for /? 回车,就能看到帮助信息。
给你个列局域网IP地址的例子:
For /L %i in (0,1,254) DO ping -a -n 1 192.168.0.%i |Find /i "reply" >>C:\IPAddress.txt
等命令执行完毕,打开“C:\IPAddress.txt”文件,一张完整的IP与主机名的对照表已经初步形成了,你只需作简单的编辑修改即可打印输出了。
请注意:For命令指定参数“%i”从0开始,每次增加1,直到254为止,即一个C类网段的全部地址。如果用户的局域网自行定义的了IP地址,应根据实际情况设置,如可以为“172.16.0”;“-a”表示获取主机名;“-n -1”表示回显的次数为1次,默认情况下为4次;Find /i "reply“表示查找已响应的主机,即已ping通的主机;“C:\IPAddress.txt”表示将屏幕回显内容输入到“:\IPAddress.txt”文件中。 参考技术A 说得对,for里的%%i 类变量不支持 %i:~-7类操作,而改后呢,你又不知道变量不会延迟扩展,可以有多种解决方法,这里写一种可能较少用的, 建议到我空间看一篇关于变量的文章
for %%i in (*.mp3)do set a=%%i&call :y
pause&exit
:y
ren "%a%" "%a:~-7%"本回答被提问者采纳 参考技术B 1.开始菜单>运行>输入cmd回车
2.进入cmd后
d:回车
dir空格*ai*.*回车 (比如想找woaini.sys)就可以找到以此内推,*号代表任何字符
找到这个文件后。
3.del空格文件全名回车
DOS,批处理bat中的DIR命令
我发现如果要列出指定的文件夹(只列文件夹),用DIR的话,如果根目录下也有这个文件夹就DIR不出,这是为什么,怎么解决?
dir 命令:显示目录中的文件和子目录列表。就是说只列出本目录下的文件,不包括本身。
你指定文件夹后,就是相当于在本目录下列出文件,所以不会显示你指定的目录。
@echo offfor /r %%i in (.) do (
echo,%%~dpni"
)
pause
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上代码,保存为BAT文件。 参考技术A 使用Dir/?可以查询更多的使用方法,依你所述,你可能是Dir的是系统盘,或者其他被隐藏的盘了,你可以使用该命令的参数来指定更多的条件 参考技术B 不会这样啊,是不是你写错代了呢?
以上是关于DOS中批处理命令for命令和get命令如何使用的主要内容,如果未能解决你的问题,请参考以下文章
循环完成后 FOR 循环恢复执行 - DOS(Windows 命令行)