如果我使用以下方法迭代每个文件:
@echo off FOR %%f IN (*\*.\**) DO ( echo %%f )
我怎么能打印每个文件的扩展名?我尝试将%% f分配给临时变量,然后使用代码:echo "%t:~-3%"
打印但没有成功.
FOR命令有几个内置开关,允许您修改文件名.请尝试以下方法:
@echo off for %%i in (*.*) do echo "%%~xi"
有关更多详细信息,请使用help for
以获取修改器的完整列表 - 有很多!
这有效,虽然它不是非常快速:
@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