当前位置: 代码迷 >> 其他开发语言 >> windows 批处理循环语法,该如何处理
  详细解决方案

windows 批处理循环语法,该如何处理

热度:184   发布时间:2016-05-02 04:01:38.0
windows 批处理循环语法
@echo off
rem 删除文件
del /a /f /q .\"*.hta"

for /f "delims=" %%i in ('dir /a:-d /b /s .\"*.html"') do ( 
copy /-y "%%i" "%%~ni.hta"
)
那个循环的语法看不明白..
"%%i" "%%~ni.hta"不知道哪来的
------解决方案--------------------
for /f "delims=" %%i in ('dir /a:-d /b /s .\"*.html"') do ( 
copy /-y "%%i" "%%~ni.hta"
)

1. 执行dir /a:-d /b /s .\"*.html"获得一个文件名列表
2. for /f "delims=" %%i in (...) do ..., 对这个列表中的每个文件名进行处理, 循环变量(正在处理的文件名)就是%%i.
3. copy /-y "%%i" "%%~ni.hta"
进行文件copy, 把%%i复制成%%~ni.hta, 其中~n表示去掉文件名中的路径和扩展文件名, 比如%%i是c:\\temp\abc.txt, 那么%%~ni就是abc


------解决方案--------------------
引用:
1. 执行dir /a:-d /b /s .\"*.html" 不太明白参数是什么含义: /a:-d /b /s


/a:-d 非目录
/b 简化输出信息
/s 含子目录

具体参数含义你可以dir /?  查看
循环的含义可以for /? 查看
  相关解决方案