В пакетном файле я пытаюсь получить выходные данные команды и сохранить их в переменной.
Цель моей команды - подсчитать количество папок в определенной папке.
- Я не могу использовать трюк, предоставленный в этом принятом ответе, потому что мне нужно было бы сделать
cd path\to\my\folder
, чтобы добраться до текущего каталога.К сожалению, я не могу выполнить эту команду, потому что path\to\my\folder
на самом деле является UNC-путем (\\path\to\my\folder
), а cd \\some\UNC\path
не поддерживается командлетом Windows. - Мне известно о это ответ, но я не хочу использовать временный файл.
Поэтому я попытался сделать следующее:
Чтобы получить числопапок, которые я использую:
dir \\path\to\my\folder | find /c "<REP>"
Это работает нормально и возвращает мне номер, как я и ожидал.
Чтобы получить выходные данные этой команды в пакетепеременная, я попробовал:
FOR /F "TOKENS=*" %%i IN ('\\path\to\my\folder | find /c "<REP>"') DO
SET value = %%i
Но без успеха сообщение об ошибке было ...
|было неожиданным.
... при выполнении командного файла и ...
%% i было неожиданным.
приЯ пытаюсь выполнить команду прямо в командном окне.Я попытался экранировать кавычки вокруг строки <REP>
(...find /c ""<REP>""') DO...
), но получил ту же ошибку.
Нахожусь ли я на правильном пути, чтобы получить выходные данные в переменной?Что я должен сделать, чтобы устранить сообщение об ошибке?
Или, может быть, есть более простой способ задать вывод команды в переменной?