[英]Script for finding folder that contains a file
我正在开发一个可移植的开发环境,所以我需要找到垃圾箱的路径。
for /f "tokens=*" %%a in ('dir mysqld.exe /b /s') do set mysql=%%a
它返回A:\\test\\mysql-5.7.24-winx64\\bin\\mysqld.exe
但我只想获取文件夹,例如A:\\test\\mysql-5.7.24-winx64\\bin\\
,我该如何实现这个?
使用修饰符(在for /?
描述):
for /f "tokens=*" %%a in ('dir mysqld.exe /b /s') do set "mysql=%%~dpa"
echo %mysql%
%%~dpa
返回ð里沃且p ATH只。
相同但不使用dir
(因为for /r
可以递归搜索文件):
for /r "c:\startfolder" %%a in (mysqld.exe) do set "mysql=%%~dpa"
"c:\\startfolder"
是递归搜索的起点(您可以忽略它以在当前文件夹及其子文件夹中进行搜索)
注意:如果有多个匹配文件,则该变量将保留最后一个结果。
使用带有参数的子例程。 在这里了解参数
这样的事情。 删除我添加的用于显示的内容。
@echo off
for /f "tokens=*" %%a in ('dir mysqld.exe /b /s') do call :GetFolder "%%a"
echo(%mysql%
pause
goto :eof
:GetFolder
REM 1=Filespec
set "MySQL=%~dp1"
goto :eof
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.