Я пытаюсь запустить пакет аудита Lighthouse из командной строки и вывести результаты в файлы JSON. Чтобы они не перезаписывали друг друга, каждое имя файла должно быть уникальным. Я хотел бы использовать метку времени в качестве имени файла в идеале. Я проходил через множество других вопросов стека по аналогичной теме, но не могу заставить это работать. В настоящее время я использую приведенный ниже код, написанный в пакетном файле и вызываемый из командной строки Windows:
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in (C:\Users\User\Desktop\Folder\Lighthouse_Project\urls.txt) DO (
set dte=!DATE:/=-%!
set tme=!TIME::=-%!
set tme=!%tme:.=-%!
ECHO Line is: %%a
lighthouse %%a --quiet --chrome-flags=" --headless" --output=json --output-path=C:\Users\User\Desktop\Folder\Lighthouse_Project\json_logs\!dte!!tme!.json
)
Первый созданный файл имеет правильное имя, все последующие файлы JSON имеют буквальное имя: '! Dte !! Tme! ', и перезаписать друг друга. Если вы запускаете команду Lighthouse вне цикла for, она выполняется отлично, я знаю, что переменные не обновляются в цикле for, но я подумал! Var! может быть использовано для противодействия этому. Цикл for перебирает список URL-адресов, сохраненных в urls.txt, проверяя каждый из них по очереди и возвращая файл JSON.
Текущий результат: !dte!!tme!.json
Желаемый результат: 08-10-201913-55-12-07.json
, 08-10-201913-56-14-00.json
и т. Д.
Если кто-нибудь знает, как изменить это для достижения правильного результата, я был бы очень признателен.
urls.txt содержит список URL-адресов, каждый на новой строке:
https://www.bbc.co.uk/weather/2643743
https://www.bbc.com/mundo
https://regex101.com/
https://www.bbc.co.uk/news