我正在编写一个批处理文件,它将获取特定文件的目录(curl_for_64bit.exe)。我尝试使用find命令,但它不起作用。它基本上获取文件的目录,更改到该目录,以便可以复制它。
答案 0 :(得分:0)
您可以使用FOR
命令遍历目录树,检查是否存在所需文件,直到找到它为
for /r /d %%a in (*) do (
if exist %%a\curl_for_64bit.exe (
pushd %%a
goto :eof
)
)
答案 1 :(得分:0)
以下脚本搜索以curl_for_64bit.exe
为根的目录树中的文件C:\ROOT\
,并更改为找到的文件实际所在的父目录:
for /F "delims=" %%F in ('dir /B /S /A:-D "C:\ROOT\curl_for_64bit.exe"') do (
cd /D "%%~dpF"
)
或者直接在cmd
中输入此命令行:
for /F "delims=" %F in ('dir /B /S /A:-D "C:\ROOT\curl_for_64bit.exe"') do @cd /D "%~dpF"
要了解~dp
变量for
的{{1}}修饰符的含义及其工作原理,请打开一个新的命令提示符窗口,键入%%F
并阅读帮助文本(特别参见最后一节)。
答案 2 :(得分:0)
您可以使用像@Ken White这样的命令,然后使用其他代码来获取文件的目录。
这是我的代码
rem you should go to the specific root directory(like c d e etc.)
cd /d c:\
dir /s /a /b curl_for_64bit.exe >tmp.txt
set /P file_path=<tmp.txt
del tmp.txt
cd /d %file_path%\..
如果您只想复制这些文件,为什么要转到文件目录?