Passing parameter into batch file, and the parameter is a variable that holds a filepath
-
I'm calling a batch file from my qt program and am passing parameters. The batch file is set up correctly, I've pasted the code at the bottom. Below I have the section of my qt program that is the issue. The second parameter that I am passing is a variable of a filepath "sh3InstallLocation". But I am unable to pass it in. I get error with the batch. but if I change the value of sh3InstallLocation to something like "words" then everything works. Not sure what the issue is.
@
QString sh3InstallLocation;
sh3InstallLocation = ui->lineEdit_SH3Install->text();
sh3InstallLocation.replace(("\"), ("\\"));
QProcess p;
QStringList abc;
abc << "/K" << "C:\Documents and Settings\Shirin\My Documents\Dropbox\SH3 Files\SH3DC Installer\SH3DC_Installer\1.bat" << sh3InstallLocation;p.startDetached("cmd.exe", abc);
@
Batch:
@echo offSETLOCAL ENABLEDELAYEDEXPANSION
set money=%1
set nomoney=%2
set moremoney=%3
echo money: !money!
echo nomoney: !nomoney!
echo moremoney: !moremoney!
echo done
pause@
-
Why do you replace \ with \? If the lineedit contains text "c:\whatever" you don't need to escape it to pass it to cmd.
-
[quote author="Chris Kawa" date="1388917768"]Why do you replace \ with \? If the lineedit contains text "c:\whatever" you don't need to escape it to pass it to cmd.[/quote]
This has nothing to do with my issue.
-
Well I don't have a magic 8-ball you know ;) You haven't really said what the issue is so I tried to best guess it.
What do you mean by " I am unable to pass it in. I get error with the batch."
You just did pass it in so you are able to. What kind of error do you get? How do you get it? Is it a runtime error, a message on the standard error stream or just a different output from what you expect?An answer can only be as good as the question is.
-
How should I send the parameter to the batch file with spaces in my file path, that I'm sending as a parameter?