Тема: CMD/BAT: Путь из txt
Ребята! Подскажите, пожалуйста, никак не могу добить батник.
Дело вот в чем: решила сделать автообновлялку для некой программы. Что нужно - посмотреть в определенной папке и найти самый последний архив. Потом разархивировать с заменой в папки с программой.
Все это я сделала, и батник работает. Т.е. я сортирую файлы в папке с обновлениями, беру первый и распаковываю.
Решила усовершенствовать файл. Т.е. научиться брать путь к обновлениям и к программе из некоего внешнего файла config.txt. Вот тут начались проблемы. Т.е. по результатам tokens у меня вроде как путь определяется правильно. НО почему-то он как-то странно обрабатывает его в цикле и как итог "файл не найден"
Постараюсь показать на примере, а то по-моему ничего не понятно))
1 @echo off
2 chcp 1251
3 set config=config.txt
4 FOR /F "usebackq tokens=1" %%I IN ("%config%") DO set update_dir=%%I
5 echo update dir - %update_dir%
6 pause
7 rem set update_dir=C:\Update
8 set elbrus_path=C:\Elbrus -
9 FOR /F %%? IN ('dir "%update_dir%\*.zip" /b/a-d/o-d') DO set "newestfilename=%%?" & goto end
10 :end
11 echo Последнее обновление - %newestfilename%
12 pause
13 "C:\Program Files\WinRAR\winrar.exe" x "%update_dir%\%newestfilename%" "%elbrus_path%DEMO\" -y
вот смотрите. в 4 строке я задаю путь к обновлялке. в конфиге просто путь:
C:\Update
В 5 вывожу, чтобы проверить. Действительно, так и есть.
В 9 строке сортирую и беру самый новый. Результат - файл не найден.
НО если раскомментировать 7 строку, где напрямую задаю тот же путь, то работает.
Вопрос: ПОЧЕМУ?
Подозреваю, что это как-то связано с табуляциями и прочим, но никак не пойму где собака зарыта. Помогите, пожалуйста!
P.S. простите за такое пространное объяснение.