@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
------解决方案--------------------
/a:-d 非目录
/b 简化输出信息
/s 含子目录
具体参数含义你可以dir /? 查看
循环的含义可以for /? 查看