У меня есть пакетный файл, который должен искать файл с определенным расширением в каталоге, а затем получить расширения этого файла. Он успешно находит файл, но по какой-то причине не может его прочитать. В чем может быть проблема?

Вот мой код:

@echo off

setlocal enabledelayedexpansion



::Find the file
for /r %%i in (*.extension) do set file=%%~nxi

::Get that file's contents (not working)
for /f "delims=" %%x in (%file%) do set Build=%%x




::returns nothing.
echo %Build%

1 ответ1

1

Ваш скрипт устанавливает переменную "file" только для имени файла (без пути). Затем вы пытаетесь открыть имя файла (без пути). В моей системе я получил сообщение об ошибке «Система не может найти файл ...».

Это наводит меня на мысль, что в вашем скрипте строка поиска файла использует текущий путь к файлу bat, а чтение файла - нет. Я думаю, это из-за "*" в строке поиска.

Я исправил это, просто изменив строку поиска в файле:

for /r %%i in (*.txt) do set file=%%i

Теперь переменная "файл" будет полным путем + имя файла, и пакетный файл найдет мой файл и прочитает текст.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .