【发布时间】:2021-07-21 17:33:34
【问题描述】:
我想使用批处理分析文件。该文件在顶层有一个文件夹。这个文件夹对每个文件都有不同的命名,但是每次只有一个文件夹(除了顶层的一些其他文件)。
要获取文件夹的路径,我的方法是遍历 FOR 中顶层的所有现有文件夹,并在每次迭代中创建路径名。因为每次我只有 1 次迭代时只有一个文件夹,如下所示:
setlocal enabledelayedexpansion
for /f "delims=" %%D in ('dir /a:d /b %temp_dir%') do (
set "folderPath=%%~D"
set "FullFolderPath=%temp_dir%\!folderPath!"
echo !FullFolderPath!
)
echo %FullFolderPath%
问题:循环内的第一个回显输出了文件夹的正确路径,但第二个回显刚刚声明<ECHO OFF>
【问题讨论】:
-
请提供您的代码的minimal reproducible example。就目前而言,它不完整或不可复制。
-
@Zilog80:我认为你混淆了一些东西。您所描述的对于
in子句是正确的,但对于do子句则不是(您在链接的答案中成功证明了这一点)。 @SRel:您的代码对我来说似乎按预期工作(最后一行回显最后找到的文件夹名称或ECHO is OFF当没有匹配的文件夹时(因此根本不执行do子句)。 -
@Stephan 你说得对,我很困惑,这是针对 IN 子句而不是 DO 子句。我老了……
-
I'm old...- 我从你的用户名:D中猜到了(能够这样做证明我可能在同一个范围内......)
标签: batch-file cmd