![找到一个目录并使用 cmd 在 Windows 中打开它](https://linux22.com/image/1437997/%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E5%B9%B6%E4%BD%BF%E7%94%A8%20cmd%20%E5%9C%A8%20Windows%20%E4%B8%AD%E6%89%93%E5%BC%80%E5%AE%83.png)
有没有办法找到文件(“example.txt”)的目录,然后如果找到文件,则在 cmd(或 vb)上打开目录(例如“c:\example\sub\”)?当然,查看所有分区,而不仅仅是“C:\”。
答案1
从每个驱动器的根目录运行以下命令。
for /f "delims=" %a in ('dir /s /b example.txt') do explorer %~dpa
上述命令将找到所有名为“example.txt”的文件,然后在它们所在的目录中运行资源管理器。
如果您希望使用批处理文件,则每个文件都%
需要替换为%%
:
for /f "delims=" %%a in ('dir /s /b example.txt') do explorer %%~dpa
获取驱动器列表:
for /f "skip=1 delims=" %a in ('wmic logicaldisk get caption') do @echo %a
在批处理文件中:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do @echo %%a
将所有内容放在批处理文件中:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
cd %%a
cd \
for /f "delims=" %%b in ('dir /s /b example.txt') do explorer %%~dpb
)
在第一个匹配后停止:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
cd %%a
cd \
for /f "delims=" %%b in ('dir /s /b example.txt') do (
explorer %%~dpb
exit
)
)
答案2
这将在当前工作目录和所有子目录中找到具有给定扩展名的所有文件:
dir *.cpp *.h *.java /b/s
这将对以“pyth”开头的文件执行此操作
dir pyth*
你可以扩展这个例子。
要打开文件位置(即文件夹),您可以cd
到结果中输入
explorer .
或者
start .
如果您不想使用,cd
那么您可以将文件位置从传递dir
给explorer
或start
命令。
要将其改编为每个已安装驱动器的 for 循环,请查看此 Stackoverflow 帖子:
https://stackoverflow.com/questions/5709189/batch-script-to-find-drive-letter-of-a-mounted-device