繁体   English   中英

查找包含文件的文件夹的脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM