W10 CMD forfiles
W10 CMD forfiles
因为我有一个任务,我必须递归地复制嵌套目录的文件才能工作,所以我在 windows cmd 中发现了 forfiles
函数。
它运行正常,现在我想知道这个函数是如何区分文件和目录的?
如果每个文件的文件扩展名都是 .jpg .png .xls 之类的,我能理解,但我的一些文件没有扩展名,但它仍然起作用。
因为我习惯 linux,我尝试 google 源代码,但是 windows 应用程序不是开源的,所以如果有人能解释我,它是怎么做到的工作,知道会很有趣。
PS:为什么这会被否决?这是一个一般性问题
该命令最终将调用 Windows FindFirstFile/FindNextFile
函数。那些 return 一个 WIN32_FIND_DATA
结构可能包含一个 FILE_ATTRIBUTE_DIRECTORY
标志。如果未设置该标志,则为文件。
在内部,文件和目录之间存在很大差异,典型的 file/directory 处理命令知道这一点也就不足为奇了。文件没有扩展名(或者目录名为“directory.jpeg”)这一事实不会在这些命令中造成任何混淆。
如果您查看 forfiles
'“手册页”(forfiles /?
),您可能会看到 /C
开关允许您访问 @isdir
变量,该变量可以告诉你区别:你处理的是目录(值:TRUE
)还是文件(值:FALSE
)?
因为我有一个任务,我必须递归地复制嵌套目录的文件才能工作,所以我在 windows cmd 中发现了 forfiles
函数。
它运行正常,现在我想知道这个函数是如何区分文件和目录的?
如果每个文件的文件扩展名都是 .jpg .png .xls 之类的,我能理解,但我的一些文件没有扩展名,但它仍然起作用。
因为我习惯 linux,我尝试 google 源代码,但是 windows 应用程序不是开源的,所以如果有人能解释我,它是怎么做到的工作,知道会很有趣。
PS:为什么这会被否决?这是一个一般性问题
该命令最终将调用 Windows FindFirstFile/FindNextFile
函数。那些 return 一个 WIN32_FIND_DATA
结构可能包含一个 FILE_ATTRIBUTE_DIRECTORY
标志。如果未设置该标志,则为文件。
在内部,文件和目录之间存在很大差异,典型的 file/directory 处理命令知道这一点也就不足为奇了。文件没有扩展名(或者目录名为“directory.jpeg”)这一事实不会在这些命令中造成任何混淆。
如果您查看 forfiles
'“手册页”(forfiles /?
),您可能会看到 /C
开关允许您访问 @isdir
变量,该变量可以告诉你区别:你处理的是目录(值:TRUE
)还是文件(值:FALSE
)?