CMD Windows查找/搜索并返回绝对路径


CMD Windows find/search and return absolute path

是否有通过查找返回文件和/或文件夹的绝对路径的方法?

让我们说一下c: est中的filename.txt

1
2
3
set file=filename.txt

dir %file% /s

现在它返回第6行中的c: est。但我想要的是它返回绝对路径

C: estfilename.txt并将其设置为variabel,以便下次使用。

谢谢您


只需将/B选项添加到dir/S命令行,就可以返回完全绝对路径。

要捕获此命令行的输出,请使用for /F循环:

1
for /F"delims=" %I in ('dir /S /B"filename.txt"') do rem/ Do something with `%I`...

例如,要删除匹配的文件,请执行以下操作:

1
for /F"delims=" %I in ('dir /S /B"filename.txt"') do del"%I"

注意,要在批处理文件中使用此代码,必须将%符号加倍,因此%I变为%%I


假设将文件名作为批处理脚本的第一个参数,则批处理脚本可能如下所示:

1
2
set file=%~dpnx1
echo %file%

调用脚本将返回给定文件的绝对路径,您可以将其作为变量继续使用。有关此问题的详细信息,请参阅文章:从相对路径和/或文件名解析绝对路径