windows bat命令

windows bat

1. delims

用在for命令的参数f语句中,“for /f”用于解析字符串。

比如有文件”musci list.txt”:
序号、歌手名-歌曲名.后缀名
1、饶天亮-玫瑰爱人.wma
2、高一首-我不愿错过.mp3
3、黃凱芹-傷感的戀人.MP3
4、黄灿-黄玫瑰.lrc
5、黎姿-如此这般的爱情故事.mp3

code1: print all content

for /f %%i in (music list.txt) do echo %%i

code2: print fileName:

for %%i in (musci list.txt) do echo %%i

==> so, /f is used to parse fileName.

http://www.jb51.net/article/17927.htm中,作者写的很形象生动,把delims表示为切蛋糕的好工具。

代码2:默认提取第一列
for /f "delims=、" %%i in (歌曲列表.txt) do echo %%i
pause

运行结果:
序号
1
2
3
4
5

2、 %cd% and %~dp0

cd is a DOS command, for example, if the .bat file in dir of D:\test.bat;
if using %cd% in E:,then it print E:
if using %~dp0 in E: then it print D:;
while if executed in D,it both print D:
所以,就是说,cd是当前执行的目录,而~dp0表示bat文件所在的目录

3、 example:

  • 想要遍历某个文件夹,获取到文件夹下面的文件名称,然后开始执行exe,传文件名称给可执行程序;
    set path=C:\Users\demo\content\
    for /f “delims=” %%a in (‘dir /b/a-d/oN %path%’) do (
    start deep_image_analogy.exe ../models/ ../demo/%%a ../demo/style.png ../demo/%%a/ 0 0.5 2 0)

    pause

  • 获取某个目录下面文件的名称
    @echo off

    for /f “delims=” %%a in (‘dir /b/a-d/oN .‘) do echo %%a >>list.txt

    pause

    其中@echo off 表示不需要输出内容; pause表示不要窗口一闪而过;

  • dir 可以查看dos下面dir的具体用法

猜你喜欢

转载自blog.csdn.net/u011415481/article/details/72934655
今日推荐