Мне нужна помощь в выполнении скрипта bash из пакетного скрипта (.bat), который вызывается приложением Qt внутри Windows.Для выполнения сценария bash из .bat-файла и .bat-файла вызывается приложением QT
Обзор проблемы: Мне нужно перенести файлы из Windows в Linux с помощью приложения Qt и запустить скрипт bash внутри linux для выполнения нескольких команд.
Что я сделал до сих пор: Я могу успешно перенести файлы из окон в Linux с помощью приложения Qt. Приложение Qt вызывает пакетный файл, который передает файл
пример
void Qt_intro101::on_file_upgrade_clicked()
{
QFileInfo fileInfo(ui->selected_file->text());
if(!fileInfo.exists())
{
QMessageBox::information(this, tr("Information"),
tr("Unable to find file for upgrading!"));
return;
}
// copying update
QString fileName = fileInfo.absoluteFilePath();
//Check if cmd.exe is present in Clients system and is located at correct path
QFileInfo cmdFile("C:\\Windows\\system32\\cmd.exe");
if(!cmdFile.exists())
{
QMessageBox::information(this, tr("Information"),
tr("Failed to find the cmd.exe ... Check cmd.exe is installed and is in C:\\Windows\\system32\\ !"));
return;
}
QStringList arguments ;
arguments << " /c" <<"c:\\temp\\upgradeTesting\\test.bat"<< fileName ;
QProcess *process = new QProcess(this);
process->start(cmdFile.absoluteFilePath(), arguments) ;
if(!process->waitForStarted())
{
QMessageBox::information(this, tr("Information"),
tr("Failed to start the process for upgrading!"));
return;
}
QMessageBox::information(this, tr("Information"),
tr("Please wait while system is upgrading .. click Ok to exit this box"));
qDebug() << fileName ;
process->waitForFinished() ;
qDebug() << process->readAllStandardOutput();
QMessageBox::information(this, tr("Information"),
tr("Upgradation is successful.. Please restart the system")) ;
process->deleteLater();
}
Я прописан пакетный скрипт (.bat), который выполняет команды, как
pscp -pw "lol" "%TARGET_UPDATE%" [email protected]"%TARGET_IP%":"%BASE_DIR%"/
Для выполнения bash через командный файл ниже - команда внутри пакетного файла
putty -pw "lol" -m test-update.sh [email protected]"%TARGET_IP%"
я даже пытался что-то подобное
C:\\Program Files\\putty.exe -pw "lol" -m test-update.sh [email protected]"%TARGET_IP%"
Не могли бы вы, ребята, пожалуйста, дайте мне знать, где я делаю ошибку?
спасибо и привет,
Sam
Да Вы правы. Я забыл изменить, чтобы изменить код. Я сейчас взломаю его. но все еще не удалось запустить – samantha
Проведя много часов, я понял, что мне нужно указать полное имя пути в пакетном скрипте для Qt, чтобы выполнить его.Без qt он отлично работает, но если я хочу запустить командный файл через приложение QT, то, я думаю, мне нужно дать полное имя пути для скрипта bash – samantha