How to pass an argument to a Windows Scheduled Task with spaces in it
I need to set up a Windows Scheduled Task. It accepts 1 parameter/argument which is a path and can contain spaces. My Scheduled task does not work - it "breaks" the parameter up at the first space.
If I run it in the Command Prompt I can just wrap the argument in " " and it works fine, however, this does not work in the Scheduled Task UI.
e.g. C:\Program Files\xyz\FTP File Transfer\FTPFileTransferTask.exe "C:\Program Files\xyz\The Interface\Folder Path"
I have tried wrapping the argument with " " ' ' [ ] () and have tried filling in the spaces with %20, ~1 etc. with no luck.
I know of one solution to make a bat file and use " " around my argument but I don't want to add more complexity.
I tried it on Windows 7 and Windows 2008 Server and both failed. There seems to be no discussions on this?
Solution 1:
schtasks.exe /create /SC WEEKLY /D SUN /SD 11/12/2015 /ST 12:00:00 /TN "taskname" /TR "'c:\program files(x86)\task.exe' Arguments"
Note the use of '
in the path of a file to be run.
Solution 2:
I've worked with scheduled tasks and you generally put the arguments in its own text input box. This means that you point the action to the program/script field points to the exe and the "Add Arguments" field should have all of the parameters. (source)
I believe this behavior was added to prevent spaces in the file path to the exe causing problems.
I do this all of the time with PowerShell scripts. Here is an example:
- Program/script: powershell.exe
- Add arguments: -command "& 'C:\HSD - Copy\logoffstudents.ps1' " -NonInteractive
- Start in: Blank
Solution 3:
In this case, you could work around the problem by passing your path parameter in 8.3 format.
You can discover the 8.3 format for your path by opening a command prompt and issuing the command dir /x
in the root of your drive.
You should see an entry similar to
11/04/2011 12:10 <DIR> PROGRA~1 Program Files
for your Program Files directory.
Then change directory to Program Files with cd "Program Files
" followed by cd xyz
and issue dir /x
again to find the 8.3 format name for "The Interface", and so on.
Your final path for the example you gave would look something like:
C:\PROGRA~1\XYZ\THEINT~1\FOLDER~1