批量获取文件名为循环

我在batch file中有以下For循环:

for /R c:\test\src %%i IN (*.*) DO ( MOVE %%i C:\test\destination ECHO %%i exit ) 

ECHO的结果输出整个文件pathEx: C:\ Foldername \ Filename我只需要ECHO出只文件名 。是否有一个特定的命令,会给我的文件名? 谢谢 !

当启用命令扩展(大致为Windows XP和更新版本)时,可以使用语法%〜nF(其中F是变量,〜n是对其名称的请求)仅获取文件名。

 FOR /RC:\Directory %F in (*.*) do echo %~nF 

应该仅回显文件名。

或只是%〜F会给你完整的路径和完整的文件名。

例如,如果要在当前目录中注册所有* .ax文件….

 FOR /RC:. %F in (*.ax) do regsvr32 "%~F" 

这在Win7(64位)中工作得非常好:-)

我有点晚,但我用这个:

 dir /B *.* > dir_file.txt 

那么你可以做一个简单的FOR循环来提取文件名并使用它们。 例如:

 for /f "tokens=* delims= " %%a in (dir_file.txt) do ( gawk -f awk_script_file.awk %%a ) 

或者将它们存储到变量(!N1 !,!N2!..!N!)中以供以后使用。 例如:

 set /a N=0 for /f "tokens=* delims= " %%a in (dir_file.txt) do ( set /a N+=1 set v[!N!]=%%a )