我在批处理文件中有以下For循环:
for /R c:\test\src %%i IN (*.*) DO (
MOVE %%i C:\test\destination
ECHO %%i
exit
)
ECHO的结果输出整个文件路径Ex:C:\ Foldername \ Filename我只需要ECHO输出文件名。是否有一个特定的命令可以给我文件名?谢谢 !
启用命令扩展时(Windows XP及更新版本),您可以使用语法%~nF(其中F是变量,~n是其名称请求)来获取文件名。
FOR /R C:\Directory %F in (*.*) do echo %~nF
应该只回显文件名。
或只是%~F将为您提供完整的路径和完整的文件名。
例如,如果要在当前目录中注册所有* .ax文件....
FOR /R C:. %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
)
或将它们存储到Vars(!N1!,!N2!..!Nn!)供以后使用。例如:
set /a N=0
for /f "tokens=* delims= " %%a in (dir_file.txt) do (
set /a N+=1
set v[!N!]=%%a
)
如果你想同时保留文件名(仅限)和扩展名,你可以使用%~nxF
:
FOR /R C:\Directory %F in (*.*) do echo %~nxF