我正在尝试编写一个代码,该代码将显示我定义的文件的路径。例如,我有两个文件
我希望在我的脚本中定义文件名“document.txt”,并返回“D:\ Test \ ExecuteScript.bat”。我也尝试了以下代码:
for / r %% x in(* document.txt)do echo“%% x”
但是,只有当document.txt位于文件夹内且ExecuteScript.bat位于文件夹之外时才有效,例如:
我搜索了很多在线解决方案,但其中很多要求我把C:\放在我不想要的代码前面。非常感谢,并为我糟糕的英语道歉。
答案 0 :(得分:1)
要告诉for /R
从哪里开始搜索文件,只需说明/R
背后的路径:
for /R "D:\" %%x in ("*document.txt") do echo "%%~x"
如果您在搜索同一个驱动器上,以下就足够了:
for /R "\" %%x in ("*document.txt") do echo "%%~x"
以下是您在输入for
时出现for /?
帮助的摘录:
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] Walks the directory tree rooted at [drive:]path, executing the FOR statement in each directory of the tree. If no directory specification is specified after /R then the current directory is assumed. If set is just a single period (.) character then it will just enumerate the directory tree.
如果您要在所有驱动器中搜索,可以执行以下操作:
rem // Loop through all drive letters:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
rem // Temporarily try to change to root of current drive:
pushd "%%d:\" 2> nul && (
rem // Drive found, so search it for matching files:
for /R %%x in ("*document.txt") do echo "%%~x"
popd
)
)