要列出指定路径中文件的完整路径名,我可以使用:
FOR /F "tokens=*" %G IN ('DIR /B "path\*.*"') DO echo %~fG
错误的结果:<current_directory>\*.*
ss64.com 说:“如果将没有驱动器号/路径的文件名扩展为显示驱动器号/路径,命令外壳将假定;通常不正确;文件驻留在当前目录中。”
这是一种相当愚蠢的行为。然而,这可能是问题所在,因为 DIR 在这里返回了一个裸文件名。
有什么办法可以避免这种错误? 因为它很容易制作。
我知道我可以在 DIR 命令中使用 /S 选项,这会使结果成为完整路径名,但它也会通过不想要的子文件夹。
使用以下语法一切正常,但我不能使用 DIR 命令的优点:
FOR %G IN ("path\*.*") DO echo %~fG
结果:<path>\*.*
您对如何使用 DIR 和完整路径有任何提示或技巧吗?