batch-file - 批处理 - 从目录 /b 返回完整路径
问题描述
我正在遍历驱动器上的文件夹,收集具有特定扩展名的文件名,并构建一个稍后在命令行开关中使用的字符串。当我找到一个合格的文件时,我需要知道它的完整路径,因为这是命令行所要求的。我目前使用“%~dp0%%a\%%b”来构建完整路径,但我可以看到,当批处理变得更复杂时(例如,它更深入地挖掘子文件夹),它可能会受到限制。我希望有一种方法可以将“%~dp0%%a\%%b”替换为找到的文件的路径。谢谢:
@ECHO OFF
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
pushd %%a
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%b in ('dir /b "*.E01" "*.L01" "*.AD1" 2^>nul') do (
SET EVIDENCE_STR=!EVIDENCE_STR! /e:"%~dp0%%a\%%b"
)
IF DEFINED EVIDENCE_STR (
ECHO !EVIDENCE_STR!
) ELSE (
ECHO No evidence files located in: %%a
)
endlocal
SET EVIDENCE_STR=
popd
)
PAUSE
解决方案
为什么需要创建 2 个循环,每个循环运行一个dir
命令来查找文件?为什么不只是for /R
循环?这是一个例子:
@echo off
set "files=*.E01 *.L01 *.AD"
for /R %%a in (%files%) do echo %%a
推荐阅读
- spring - 如何从 JPA 获取不同的记录
- python - 在一行代码中从表中获取第一个元素的列表[python]
- c# - 找不到面板添加到面板服务器端
- java - 如何包装发送消息到断路器内的队列(springboot +弹性4j)
- git - 具有多个合并提交的分支的 Git 变基
- xslt - 使用 group by 属性值转换具有某些属性的元素
- c# - 使用 c# 开发 riot api 时的请求问题
- pyspark - 如何在使用 Foundry Data Expectations 时使用过滤后的数据框过滤列并验证另一列?
- flutter - 如何检查控制器是否已使用 Flutter GetX?
- php - 使用 PHP 将文本区域的内容保存到 .txt 文件