Write to text file with input box to change a specific value

I need to create a batch file and write to it. The wording remain the same but the /Value=? needs to change by provding the person a input box to enter the value? The file needs to be created in c:\Program Files (x86)\test\Worktest\Test.bat



I need to write the following with the ability to change the Value=apple to what ever the user inputs.  I want to be able to change that by using the inputbox.

echo off
"C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe" /Value=apple /playnow

Please advice
Vicki05Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

oBdACommented:
Plain batch:
@echo off
setlocal
set Value=
set /p Value=Please enter the value (or an empty value to exit): 
if "%Value%"=="" goto :eof
"%ProgramFiles(x86)%\Common Files\test\Interface\Control\hello.jack.test.exe" /Value=apple /playnow

Open in new window

0
MacroShadowCommented:
Try this:
echo off
set /p strValue= Please enter a value.
"C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe" /Value=%strValue% /playnow 

Open in new window

0
oBdACommented:
Small correction for the plain batch (forgot to replace apple, too much copy and paste):
@echo off
setlocal
set Value=
set /p Value=Please enter the value (or an empty value to exit): 
if "%Value%"=="" goto :eof
"%ProgramFiles(x86)%\Common Files\test\Interface\Control\hello.jack.test.exe" /Value="%Value%"/playnow

Open in new window

And for the fun of it, a batch with an input box:
@echo off
setlocal
set Title=Title
set Prompt=Prompt
set TempFile=%Temp%\Input.vbs
>"%TempFile%" echo Wscript.Echo InputBox("%Prompt%", "%Title%")
set Value=
for /f "delims=" %%a in ('cscript.exe //nologo "%Temp%\Input.vbs"') do (set Value=%%a)
del "%TempFile%"
if "%Value%"=="" goto :eof
"%ProgramFiles(x86)%\Common Files\test\Interface\Control\hello.jack.test.exe" /Value="%Value%"/playnow

Open in new window

0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Vicki05Author Commented:
Sorry, I meant to say that I need a vbscript to write a text or a batch file that will let me change the value.
0
MacroShadowCommented:
Please repost the exact text you need written to a text/batch file, put the variable text only in bold.
0
Vicki05Author Commented:
Here is the vbscript that I am working on. I need to be able to change the value using a inputbox instead of msgbox

strComputer = "."
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")


Const ForReading = 1
Const ForWriting = 2
intAnswer = _
    Msgbox("This utility gives the ability to Update the Value." & vbCrLf & "Do you want to turn Change Value?", _
        vbYesNo, "Run Program")

If intAnswer = vbYes Then

            If objFSO.FileExists("C:\Program Files (x86)\test\Worktest\Test.bat") Then
                  objFSO.DeleteFile "C:\Program Files (x86)\test\Worktest\Test.bat"
            End If


            Set objFSO = CreateObject("Scripting.FileSystemObject")
            Set outFile = objFSO.OpenTextFile("C:\Program Files (x86)\test\Worktest\Test.bat", 8, True)
      For i = 1 to 7

Next

outfile.WriteLine "@echo off"
outfile.WriteLine """C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe""/Value=apple /playnow"


      msgbox"Done"
End If
0
MacroShadowCommented:
Perhaps if I understood your goal I could advise you of a better way...

strValue = InputBox("Enter desired value.")
outfile.WriteLine """C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe""/Value=" & strValue & " /playnow"

Open in new window

0
oBdACommented:
Do you mean something like this (what's the empty for loop for?):
strOutputFile = "C:\Program Files (x86)\test\Worktest\Test.bat"
strOutputFile = "C:\Temp\Test.bat"
strTitle = "Run Program"
strPrompt =	"This utility gives the ability to update the value." & vbCrLf & _
			"Enter the value you want to set, or an empty value to skip:" & vbCrLf

Const ForReading = 1
Const ForWriting = 2
' Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

strValue = InputBox(strPrompt, strTitle)
If strValue <> "" Then
	If objFSO.FileExists(strOutputFile) Then
		objFSO.DeleteFile strOutputFile
	End If
	Set outFile = objFSO.OpenTextFile(strOutputFile, 8, True)
	For i = 1 to 7
	Next
	outfile.WriteLine "@echo off"
	outfile.WriteLine """C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe"" /Value=""" & strValue & """ /playnow"
	MsgBox "Value changed to '" & strValue & "'."
End If

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Vicki05Author Commented:
Hi Macro,

I get an error on line2 character 1. Object required "outfile"
0
Vicki05Author Commented:
Thanks for the solution. It worked.
0
oBdACommented:
Just noted that for the sake of completeness, there should be an "outFile.Close" after line 21. And for the fun of it, here's a version that fixes this and displays the current value in the input box:
strOutputFile = "C:\Program Files (x86)\test\Worktest\Test.bat"
strTitle = "Run Program"
strPrompt =	"This utility gives the ability to update the value." & vbCrLf & _
			"Enter the value you want to set, or an empty value to skip." & vbCrLf

Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
' Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strOutputFile) Then
	strSearch = "/Value="
	Set outFile = objFSO.OpenTextFile(strOutputFile, ForReading)
	Do While Not outFile.AtEndOfStream
		strLine = outFile.ReadLine()
		intPosValue = InStr(strLine, strSearch)
		If intPosValue > 0 Then
			intPosPlayNow = InStr(strLine, "/playnow")
			If (intPosPlayNow > 0) And (intPosPlayNow > intPosValue) Then
				strOldValue = Mid(strLine, intPosValue + Len(strSearch) + 1, intPosPlayNow - intPosValue - Len(strSearch) - 3)
			End If
		End If
	Loop
	strPrompt = strPrompt & vbCrLf & "The current value is '" & strOldValue & "'."
	outFile.Close
End If

strValue = InputBox(strPrompt, strTitle, strOldValue)
If (strValue <> "") And (strValue <> strOldValue) Then
	Set outFile = objFSO.OpenTextFile(strOutputFile, ForWriting, True)
	For i = 1 to 7
	Next
	outFile.WriteLine "@echo off"
	outFile.WriteLine """C:\Program Files (x86)\Common Files\test\Interface\Control\hello.jack.test.exe"" /Value=""" & strValue & """ /playnow"
	outFile.Close
	MsgBox "Value changed to '" & strValue & "'."
End If

Open in new window

0
Vicki05Author Commented:
Thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
VB Script

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.