【发布时间】:2010-09-13 10:06:25
【问题描述】:
如果我使用 :
遍历每个文件@echo off
FOR %%f IN (*\*.\**) DO (
echo %%f
)
如何打印每个文件的扩展名?我尝试将 %%f 分配给一个临时变量,然后使用代码:echo "%t:~-3%" 进行打印,但没有成功。
【问题讨论】:
标签: windows batch-file dos
如果我使用 :
遍历每个文件@echo off
FOR %%f IN (*\*.\**) DO (
echo %%f
)
如何打印每个文件的扩展名?我尝试将 %%f 分配给一个临时变量,然后使用代码:echo "%t:~-3%" 进行打印,但没有成功。
【问题讨论】:
标签: windows batch-file dos
这行得通,虽然速度不是很快:
@echo off
for %%f in (*.*) do call :procfile %%f
goto :eof
:procfile
set fname=%1
set ename=
:loop1
if "%fname%"=="" (
set ename=
goto :exit1
)
if not "%fname:~-1%"=="." (
set ename=%fname:~-1%%ename%
set fname=%fname:~0,-1%
goto :loop1
)
:exit1
echo.%ename%
goto :eof
【讨论】:
FOR 命令有几个内置开关,允许您修改文件名。请尝试以下操作:
@echo off
for %%i in (*.*) do echo "%%~xi"
如需更多详细信息,请使用help for 获取完整的修饰符列表 - 有很多!
【讨论】: