Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批量获取循环的文件名_Windows_Batch File_Cmd - Fatal编程技术网

Windows 批量获取循环的文件名

Windows 批量获取循环的文件名,windows,batch-file,cmd,Windows,Batch File,Cmd,我在批处理文件中有以下For循环: for /R c:\test\src %%i IN (*.*) DO ( MOVE %%i C:\test\destination ECHO %%i exit ) ECHO的结果输出整个文件路径,例如:C:\Foldername\Filename 我只需要回显文件名。是否有特定的命令可以给我文件名? 谢谢 当启用命令扩展名时(大致为Windows XP和更新版本),您可以使用语法%%nF(其中F是变量,~n是对其名称的请求)仅获取文件名 FOR /R C:\

我在批处理文件中有以下For循环:

for /R c:\test\src %%i IN (*.*) DO (
MOVE %%i C:\test\destination
ECHO %%i
exit
)
ECHO的结果输出整个文件路径,例如:C:\Foldername\Filename 我只需要回显文件名。是否有特定的命令可以给我文件名?
谢谢

当启用命令扩展名时(大致为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循环来提取文件名并使用它们。e、 g:

for /f "tokens=* delims= " %%a in (dir_file.txt) do (
gawk -f awk_script_file.awk %%a
)
或者将它们存储到变量(!N1!,!N2!!Nn!)中供以后使用。e、 g:

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
对于/R C:\Directory%F in(*.*)do echo%~nxF@AKX的答案在命令行中有效,但不在批处理文件中。在批处理文件中,您需要一个额外的
%
,如下所示:

@echo off
for /R TutorialSteps %%F in (*.py) do echo %%~nF

顺便说一句,如果您使用的是本世纪制造的windows版本,那么您使用的不是DOS,而是windows命令提示符。如果您还想查看文件扩展名,请在末尾添加%%xF。或者%%nxf以获取带扩展名的文件名。@Dave:
表示(*.*)中的%f
(或者
表示(c:\directory\*.*)中的%f
)应该可以。这个cmd在win7 64位上对我不起作用。“~nF此时出乎意料。”如果此命令位于批处理文件中,请不要忘记使用双百分比:
echo%%~nF
gawk在任何地方都不可用