Author Topic: Неправильная интерпретация команды EXECUTE c cmd.exe  (Read 1872 times)

0 Members and 3 Guests are viewing this topic.

trillian2018

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Здравствуйте. Задача в общем простая: переименовать файл, что возможно реализовать в командной строке. Но почему то моя командная строка не воспринимает нужную команду, а просто запускается cmd.exe без каких либо действий. Вот сам скрипт:

EXECUTE("cmd.exe","RENAME C:\Users\User\Desktop\SERVER_BOTS\-0001.lnk 0001.lnk")
wait(5)
HALT

По итогу получаем запущенный cmd.exe и на этом все. Команда RENAME не работает, хотя если эту строку скопировать в саму консоль, то работает без ошибок. В чем загвоздка, подскажите, кто сталкивался? При запуске получаю изображение: (не смог загрузить изображение "
Ошибка!
Ваше вложение не может быть сохранено. Возможно файл больше, чем позволяет сервер.

Пожалуйста, проконсультируйтесь с администратором для получения более подробной информации." размер картинки 40 кб

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Как вариант - можно сделать bat-файл с нужным текстом, типа "RENAME C:\Users\User\Desktop\SERVER_BOTS\-0001.lnk 0001.lnk". Только сохранить его надо в правильной кодировке, иначе не будет работать. И через EXECUTE запускать не cmd.exe, а сам батник.

Code: (clickermann) [Select]
execute("rename.bat")

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Неправильная интерпретация команды EXECUTE c cmd.exe

Почему все сразу кричат, что ошибка в программе, когда ошибка у них? Не то, чтобы в программе их не было, но зачем приписывать несуществующие.
Так не работает, потому, что такой синтаксис у cmd. Чтобы сработала строка-команда переданная параметром должен присутствовать ключ /C
Code: (clickermann) [Select]
EXECUTE("cmd.exe", "/C rename C:\Users\User\Desktop\SERVER_BOTS\-0001.lnk 0001.lnk")
Достаточно посмотреть в консоли справку по самой cmd
Code: (javascript) [Select]
cmd /?
Quote
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] строка]

/C      Выполнение указанной команды (строки) с последующим завершением.
/K      Выполнение указанной команды (строки) без последующего завершения.
/S      Изменение поведения после /C или /K (см. ниже)
...

Если указаны ключи /C или /K, то остальная часть командной строки после
такого ключа обрабатывается как командная строка...

Пожалуйста, проконсультируйтесь с администратором для получения более подробной информации." размер картинки 40 кб
Кончилось место на сервере. Логами всё забилось (наверное)  :D