Schtasks.exe does not accept blank spaces when giving file path - windows

I'm rolling out a new python script at the office and to make this run smooth I also made a batch file which will install it, and make it run on user logon.
I use schtasks.exe to schedule a task for this, so here is what i'm trying to run
schtasks /create /TN "fooname" /SC ONLOGON /TR "C:\foo - bar\fooscript.exe" /Delay 0005:00
The error I get is 0x80070002 which means the file cannot be found. After exporting the task I created, I can see that it separated the first and last bit of the path into
<Command>C:\foo</Command>
<Arguments>bar\fooscript.exe</Arguments>
I have tried microsofts own help article, but no luck. I wish to run this without any arguments regarding fooscript.exe.

As Magoo pointed out I was able to use the short name of the folder, which can be accessed with a
dir /x
tossing back a name like "FOO~1". Using this in my path made it work.
Thank you!

Sorry old thread but just found a workaround better than these here. Put the dir name in a prompt variable and then use the var in the command.
SET fname="c:\path with spaces\target.exe"
SchTasks [args] /TR %fname%

Related

Schtasks backup - can't get the formatting right

I'm trying to schedule a task on a Windows 2008 server but can't get the formatting right.
Here's what I have:
schtasks /create /sc hourly /tn "Backup QB every hour" /tr wbadmin start backup -backupTarget:R:\QBBackups\ -include:D:\Quickbooks Data Files
Something tells me that the spaces in "Quickbooks Data Files" folder name is causing the issue. I can't tell for sure because the Last Run Result is 0xFFFFFFFF.
Ideally I'd like to save incremental versions by using the file date trick, but at this point I'd be happy to just get one scheduled task working.

Unable to run my python script through windows task scheduler

I have installed the anaconda package and been running python notebooks and python scripts easily directly from console. I created a script and want it to run every day at particular time period but it did not work. So I created a simple test file to check what is wrong. This is my test file
print("enter the no to exit")
input()
When I run this program on command prompt it ask me for an input and then it exit.
I followed this tutorial to run this program daily using windows scheduler https://blogs.esri.com/esri/arcgis/2013/07/30/scheduling-a-scrip/
In action tab I wrote this
"C:\Anaconda3\python.exe"
And the argument as
"E:\test.py"
And when I run the task manually a black window pop up and automatically closed, I cannot figure out what is wrong. I see it say something like invalid directory. I don't know what am I doing wrong. Please help.
To run Python programs in Task Manager on Windows: In "Programs/Script" input path to python.exe In "Add Arguments"input script file name In "Additional Information" input path to location where file is saved
For example:
Path to Python: C:\Users\your_user_name\AppData\Local\Programs\Python\Python36-32\Python.exe
Script name ./script.py
Path to location where script is saved: C:/foldername/
Add the following command in beginning of the .bat file where all the configuration of python and python script written
CD /d %~dp0
In my case .bat file looks like
CD /d %~dp0
Call "C:\Python\Python37-32\python.exe" "D:\myProject\script.py"
pause
Have a look into this thread from stack overflow:
You can do it in the command line as follows:
schtasks /Create /SC HOURLY /TN PythonTask /TR "PATH_TO_PYTHON_EXE PATH_TO_PYTHON_SCRIPT"
That will create an hourly task called 'PythonTask'. You can replace HOURLY with DAILY, WEEKLY etc. PATH_TO_PYTHON_EXE will be something like: C:\python25\python.exe. Check out more examples by writing this in the command line:
schtasks /?
Otherwise you can open the Task Scheduler and do it through the GUI. Hope this helps.
This might solve your problem.
If it is still not working you may refer to this thread from esri.
This will get your job done.

Can't find file when trying to open via command line.

I wonder if someone can help, I want to run a schedule task and I discovered that I can put a command line command in there, which is good.
What I need to happen is for a PHP file to run a bit like a cronjob.
The system I am using recommends I do the below but it's not working, now I believe it's due to the file being on E and not C, but I have no idea how to correct this, if anyone could give me some pointers that would be great.
"C:\Program Files (x86)\PHP\v5.3\php.exe E:\pathtofile\tasks\frequently.php -f"
System info is win 7
You've got your quote characters all fouled up, but there are separate entries for the various parts of the command in Task Scheduler.
Try this:
When creating the new task, set the Action: dropdown to Start a program.
In the Program/Script: entry, use
"C:\Program Files (x86)\PHP\v5.3\php.exe"
In the Add arguments (optional) entry use
"E:\pathtofile\tasks\frequently.php" -f
I believe what you want to know is how to schedule the php program to process a php file via command prompt (Note that the -f needs to come immediately after the php.exe:
schtasks /Create /tn MyJob /tr #"C:\Program Files (x86)\PHP\v5.3\php.exe -f E:\pathtofile\tasks\frequently.php" /sc onlogon

Task scheduler multilanguage parameter

I'm using the schtasks command from C# like this:
schtasks /create /sc ONCE ...
This works fine until i get a machine with a other language. For example, a german windows wants something like this:
schtasks /create /sc EINMAL ...
I wonder how anyone on this planet can write a working command line for machines with different languages. (BTW: what is the reason for making a command line tool schtasks with language-dependant parameterss?)
So there are two questions:
1) How can i write a language-independant command line for schtasks ?
2) Is there a way to set the command line processor's language to english?
EDIT:
Sorry - i missed something:
- I use .NET framework 2.0
- The target systems are Win7 and also XP. Therefore i can't use the TaskScheduler 2.0 API.
You can use Microsoft.Win32.TaskScheduler for this.
Please see the detailed answer by Dmitry here: https://stackoverflow.com/a/7394955/16522

Windows scheduled task

I have created a Windows 7 scheduled task:
schtasks /create /tn MyTask /tr C:\temp\test\MyScript.bat /sc MINUTE
Problem is that this task seems to get executed by Windows but I think it can not find the running BAT script. There is a quick flash window but can't read what the problem is.
On the other hand, if I place the script under Windows/System32 everything works fine.
schtasks /create /tn MyTask /tr C:\windows\system32\MyScript.bat /sc MINUTE
Anyone knows why the second schedule task works compared to the first one?
This whole thing is part of installing a program on a windows machine from a web page. So I would like to have the BAT file installed in its correct directory and not the System32.
Thanks for you help.
C:\temp is a temporary directory may be cleaned by the OS periodically. So you should first check to make sure that batch file is actually there, and then consider moving it to a more permanent location.
Second, have you tried running the task manually from its intended location? That should help you see what the output is. You can also add PAUSE to the bottom of the batch file (as suggested by commenters) to ensure that it stays up long enough for you to see the output.
Some likely problems are:
You're using some resource which is in %windir% via a relative path, which won't work when the batch file is run from a different location.
The scheduled task is running as a different user and doesn't have the proper permissions.
The task is doing something that requires elevation, but the task itself is not set to run elevated.
IIRC, schtasks does not load user profile: Most probably a variable is not set that you need.
Try to prepend your command line (after /tr) with cmd /K. It will make the console kept alive.
HTH

Resources