I am using Java ProcessBuilder to pass a String to a batch file as an argument.
ProcessBuilder pb = new ProcessBuilder( "batch.bat", "jason mary molly");
The batch file...
@ECHO OFF
SET V1=%1
ECHO %V1%
pause
The batch file output is this (pay attention to the double quotes):
"jason mary molly"
If I pass in only 1 string there are no quotes to be found! My problem is, I have a rather complex program I am writing that requires these 3 arguments to not have quotes around them, or they will be viewed by the program as one file name rather than 3 seperate arguments. Is there a way to remove these double quotes?
Try: %~1 It should get rid of the quotes
For more information type: for /? | more +121 in cmd. Here is the quote reference:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path contains short names only
%~aI - expands %I to file attributes of file
%~tI - expands %I to date/time of file
%~zI - expands %I to size of file
%~$PATH:I - searches the directories listed in the PATH
environment variable and expands %I to the
fully qualified name of the first one found.
If the environment variable name is not
defined or the file is not found by the
search, then this modifier expands to the
empty string
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
%~fsI - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
environment variable for %I and expands to the
drive letter and path of the first one found.
%~ftzaI - expands %I to a DIR like output line
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With