我正在尝试查找具有特定文件扩展名的目录中的所有文件。这是我一直在测试的代码:
@echo off
SETLOCAL enabledelayedexpansion
REM For each line in the specified file
for /f "tokens=1" %%a in (%1.txt) do (
REM Get the string of letters before the first number appears
for /f "tokens=1 delims=0123456789" %%G in ("%%a") do (
REM Determine if a file of the desired type is in the directory:
if EXIST C:\Users\User1\%%G\%%a\Folder1\*.txt (
echo file present
REM Search through the directory for all files with that extension and list them
for /r C:\Users\User1\%%G\%%a\Folder1\ %%i in (*.txt) do (
echo %%i ******<---This is the loop that isn't happening**
)
)
echo.
)
)
它按预期运行并回送&#34;文件存在&#34;当有文件时,但不列出所有文件。当我在该循环中放置一个空白回音时,它没有这样做,所以不知道循环没有运行,我不知道为什么。
我在另一个批处理文件中的循环完全相同,工作正常。我只是想尝试将其用于不同的目的,我无法弄清楚它为什么没有运行。非常感谢任何见解!
答案 0 :(得分:1)
啊 - 旧的for /r with variable root
陷阱
pushd C:\Users\User1\%%G\%%a\Folder1
for /r %%i in (*.txt) do (
echo %%i
)
popd
应该修复它。