Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Ошибка при выполнении bat-скрипта


Автор: FortMax 19.4.2019, 07:27
Доброго времени суток, уважаемые форумчане,
помогите разобраться с ошибкой выполнения скрипта, который собирает информацию с ПК:
Код

@echo Off
@echo 1251
SetLocal EnableExtensions enabledelayedexpansion

@rem ==================== Создаем директорию для отчетов. Если создана, то сначало удаляем её ========================

Set $DirName=Report_%COMPUTERNAME%
If Exist %$DirName% RD /S/Q %$DirName%

md Report_%COMPUTERNAME%

@rem ==================== Организуем цикл для переборки команд из файла ========================

for /f "usebackq delims=" %%c in (CommandName.txt) do (

@chcp 866
set $FileName=%%c                         
set $FileName=!$FileName:/=_%!             
set $FileName=!$FileName: =%!

set $FILE=!$FileName!.txt
Set $TEMP=!$FileName!.tmp

If Exist !$DirName!\!$FILE! DEL /F/Q !$DirName!\!$FILE!

%%c>>!$DirName!\!$FILE!


CMD /U /C Type !$DirName!\!$FILE!>>!$DirName!\!$TEMP!
If Exist !$DirName!\!$TEMP! DEL /F/Q !$DirName!\!$FILE!

cd !\$DirName!
ren !$TEMP! !$FILE!
)

pause


файл CommandName.txt в приложении.
В ходе выполнения последних трех строк скрипта происходит ошибка:
Цитата

Синтаксическая ошибка в имени файла, имени папки или метке тома.

перепробовал кучу вариантов с синтаксисом, не помогает... smile 
Что не так ???

Автор: Akina 19.4.2019, 07:38
Цитата(FortMax @  19.4.2019,  08:27 Найти цитируемый пост)
В ходе выполнения последних трех строк скрипта происходит ошибка

@echo on и смотри, какая именно команда привела к ошибке.

Автор: FortMax 20.4.2019, 09:39
не работают последние две строки в скрипте:
Код

cd !\$DirName!
ren !$TEMP! !$FILE!

не переименовывает файлы, не понимаю ... smile 

Автор: Akina 21.4.2019, 20:55
Не работают - негры в Африке. И то не факт. Команда - либо выполняется (возможно, не с тем результатом, на который ты расчитываешь), либо приводит к ошибке (и соотв. сообщению).

Что делать - я выше говорил. Не можешь разобраться - показывай протокол работы скрипта. Нам отсюда твоего экрана не видать...

Автор: FortMax 22.4.2019, 09:45
Решил  smile 
Код

ren !$DirName!\!$TEMP! !$FILE!


Для первого параметра нужно полностью путь к файлу прописывать было, а второй параметр имя на которое необходимо его переименовать.

Автор: ZagranPas 28.6.2019, 13:19
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)