471,091 Members | 1,615 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,091 software developers and data experts.

Windows XP - cron or scheduler for Python?


I'm trying to have some scripts run periodically on Windows XP and found the "Task Scheduler" did not execute my scripts. My scripts are of the form scriptName.py, and will run just by invoking that name in the Command Prompt.

Has anyone used the Windows Task Scheduler to run .py scripts, and if so isthere some intracacy to it?

Is there a more UNIX version of a cron program one can run on Windows?

Has anyone written a simple cron program for Windows in Python, or does anyone see any complication with doing that (which I have not grasped)?

Do I just need to build myself an **IX box?

Eric Pederson
http://www.songzilla.blogspot.com
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::
e-mail me at:
do@something.com
except, increment the "d" and "o" by one letter
and spell something with a "z"
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::

Jul 18 '05 #1
19 5572
Eric @ Zomething wrote:
I'm trying to have some scripts run periodically on Windows XP and found the "Task Scheduler" did not execute my scripts. My scripts are of the form scriptName.py, and will run just by invoking that name in the Command Prompt.

Has anyone used the Windows Task Scheduler to run .py scripts, and if so is there some intracacy to it?


I had not tried it, so I just did. My first attempt failed. As it
turned out, it was because I ignore the password field, assuming
it would be able to run anyway while I was logged in. The "status"
field in the Task Scheduler window showed the reason... once I
fixed that, it did work, either as "c:/tick.py" (make sure you
include the right path here or in the "start in this folder" field)
or as "c:/a/python23/python.exe c:/tick.py".

If it's not working, double-check the status field to see why it
didn't work...

-Peter
Jul 18 '05 #2
I run python programs ALL the time on Windows XP
using the scheduler. Two things you must
remember when doing this:

1) Your program runs in a "different" environment
than your foreground application. It DOES NOT
inherit drive mappings, environment variables,
paths, etc. so you must fully qualify everything.

2) Always call Python and have it run the application.
Don't just try to run progname.py.

HTH,

Larry Bates
Syscon, Inc.

"Eric @ Zomething" <er**@zomething.com> wrote in message
news:ma***********************************@python. org...

I'm trying to have some scripts run periodically on Windows XP and found the
"Task Scheduler" did not execute my scripts. My scripts are of the form
scriptName.py, and will run just by invoking that name in the Command
Prompt.

Has anyone used the Windows Task Scheduler to run .py scripts, and if so is
there some intracacy to it?

Is there a more UNIX version of a cron program one can run on Windows?

Has anyone written a simple cron program for Windows in Python, or does
anyone see any complication with doing that (which I have not grasped)?

Do I just need to build myself an **IX box?

Eric Pederson
http://www.songzilla.blogspot.com
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::
e-mail me at:
do@something.com
except, increment the "d" and "o" by one letter
and spell something with a "z"
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::
Jul 18 '05 #3
Larry Bates wrote:
2) Always call Python and have it run the application.
Don't just try to run progname.py.


This actually works, though, at least on my system. It
might be because I inserted .py in the PATHEXT env var
globally, though I thought it was just because running
a .py is possible simply by clicking on it in Explorer
(ie. the File Association does the job).

-Peter
Jul 18 '05 #4
Peter Hansen wrote:
Larry Bates wrote:
2) Always call Python and have it run the application.
Don't just try to run progname.py.

This actually works, though, at least on my system. It
might be because I inserted .py in the PATHEXT env var
globally, though I thought it was just because running
a .py is possible simply by clicking on it in Explorer
(ie. the File Association does the job).


No, putting .py in PATHEXT is necessary. That way, you can run python
programs from the command line (cmd) using just "scriptname", without the
extension! (it performs just like .bat, .exe and similar files)
Jul 18 '05 #5
Ivan Voras wrote:
Peter Hansen wrote:
Larry Bates wrote:
2) Always call Python and have it run the application.
Don't just try to run progname.py.


This actually works, though, at least on my system. It
might be because I inserted .py in the PATHEXT env var
globally, though I thought it was just because running
a .py is possible simply by clicking on it in Explorer
(ie. the File Association does the job).


No, putting .py in PATHEXT is necessary. That way, you can run python
programs from the command line (cmd) using just "scriptname", without
the extension! (it performs just like .bat, .exe and similar files)


Are you sure? I just tried removing .py from my PATHEXT and
not only did it still work from Explorer, it even worked from
the command line!

Then I tried redirecting the File Assocation under File Types
to point to notepad instead of python. Now typing "xxx.py"
at the command line or clicking on the xxx.py file in
Explorer both launch Notepad to edit the file.

I'm not sure what PATHEXT is really needed for, but executing
..py files on the command line in Windows XP does not seem to
be one of them...

-Peter
Jul 18 '05 #6
* Peter Hansen (2004-06-21 19:35 +0200)
Ivan Voras wrote:
Peter Hansen wrote:
Larry Bates wrote:
2) Always call Python and have it run the application.
Don't just try to run progname.py.

This actually works, though, at least on my system. It
might be because I inserted .py in the PATHEXT env var
globally, though I thought it was just because running
a .py is possible simply by clicking on it in Explorer
(ie. the File Association does the job).


No, putting .py in PATHEXT is necessary. That way, you can run python
programs from the command line (cmd) using just "scriptname", without
the extension! (it performs just like .bat, .exe and similar files)


Are you sure? I just tried removing .py from my PATHEXT and
not only did it still work from Explorer, it even worked from
the command line!

Then I tried redirecting the File Assocation under File Types
to point to notepad instead of python. Now typing "xxx.py"
at the command line or clicking on the xxx.py file in
Explorer both launch Notepad to edit the file.

I'm not sure what PATHEXT is really needed for, but executing
.py files on the command line in Windows XP does not seem to
be one of them...


"PATHEXT" enables you to run files in the path with these extensions
without extension (for example "winword" instead of "winword.exe").
The cmd shell actually performs an "open" action. For executables
"opening" is running them. For documents it's starting the associated
application and opening the document in it. For .py both things are
reasonable.

Thorsten
Jul 18 '05 #7
> 2) Always call Python and have it run the application.
Don't just try to run progname.py.


How would one do this. I'm a unix geek having the same problems as the
op, but I'm on windows 2000. The status simply says "couldn't start".
Any other ideas would be appreciated as well.
Jul 18 '05 #8
Jay Donnell wrote:
2) Always call Python and have it run the application.
Don't just try to run progname.py.


How would one do this. I'm a unix geek having the same problems as the
op, but I'm on windows 2000. The status simply says "couldn't start".
Any other ideas would be appreciated as well.


For starters, try full absolute paths for both parts. On
my machine, for example, this is pretty much guaranteed
to run:

c:\a\python23\python.exe c:\tick.py

This was just the following script, which you might want
to try as a test, but it works only if the pywin32 stuff
(formerly known as win32all) is installed:

import win32ui
win32ui.MessageBox('it works!', 'Tick', 0)

If even that doesn't work (after correcting the paths
and module name for your own system), open a command prompt
(Start->Run then type "cmd" and hit enter) and type
exactly the same thing there. If *that* doesn't work,
you don't even have Python installed properly...

-Peter
Jul 18 '05 #9
You can retrieve the startup error code using the Pywin32 package.
(requires build 201)

import pythoncom, win32api
from win32com.taskscheduler import taskscheduler
ts=pythoncom.CoCreateInstance(taskscheduler.CLSID_ CTaskScheduler,None,

pythoncom.CLSCTX_INPROC_SERVER,taskscheduler.IID_I TaskScheduler)
task=ts.Activate('your task name')
exit_code,startup_error_code=task.GetExitCode()
print win32api.FormatMessage(startup_error_code)
hth
Roger
"Jay Donnell" <ja********@yahoo.com> wrote in message
news:a6**************************@posting.google.c om...
2) Always call Python and have it run the application.
Don't just try to run progname.py.


How would one do this. I'm a unix geek having the same problems as the
op, but I'm on windows 2000. The status simply says "couldn't start".
Any other ideas would be appreciated as well.

Jul 18 '05 #10
You can actually run tasks under your userid without a password
if you're logged in. However, you have to set a certain flag for the task.
(TASK_FLAG_RUN_ONLY_IF_LOGGED_ON)
You can do this programatically using Pywin32.
Roger

"Peter Hansen" <pe***@engcorp.com> wrote in message
news:aN********************@powergate.ca...
Eric @ Zomething wrote:
I'm trying to have some scripts run periodically on Windows XP and found the "Task Scheduler" did not execute my scripts. My scripts are of the form
scriptName.py, and will run just by invoking that name in the Command
Prompt.
Has anyone used the Windows Task Scheduler to run .py scripts, and if so
is there some intracacy to it?
I had not tried it, so I just did. My first attempt failed. As it
turned out, it was because I ignore the password field, assuming
it would be able to run anyway while I was logged in. The "status"
field in the Task Scheduler window showed the reason... once I
fixed that, it did work, either as "c:/tick.py" (make sure you
include the right path here or in the "start in this folder" field)
or as "c:/a/python23/python.exe c:/tick.py".

If it's not working, double-check the status field to see why it
didn't work...

-Peter

Jul 18 '05 #11
"Eric @ Zomething" <er**@zomething.com> wrote in message news:<ma***********************************@python .org>...
Is there a more UNIX version of a cron program one can run on Windows?


Take a look at nnCron LITE (freeware): small but powerful cron/anacron Windows port.

http://www.nncron.ru
Jul 18 '05 #12
Roger Upole wrote:
You can actually run tasks under your userid without a password
if you're logged in. However, you have to set a certain flag for the task.
(TASK_FLAG_RUN_ONLY_IF_LOGGED_ON)


Wow, now there's someone who's been delving deep into the innards
of MSDN. How do you guys *know* this stuff?! :-)
Jul 18 '05 #13
"Larry Bates" <lb****@swamisoft.com> wrote in message news:<b9********************@comcast.com>...
I run python programs ALL the time on Windows XP
using the scheduler. Two things you must
remember when doing this:

1) Your program runs in a "different" environment
than your foreground application. It DOES NOT
inherit drive mappings, environment variables,
paths, etc. so you must fully qualify everything.

2) Always call Python and have it run the application.
Don't just try to run progname.py.

HTH,

Larry Bates
Syscon, Inc.

"Eric @ Zomething" <er**@zomething.com> wrote in message
news:ma***********************************@python. org...

I'm trying to have some scripts run periodically on Windows XP and found the
"Task Scheduler" did not execute my scripts. My scripts are of the form
scriptName.py, and will run just by invoking that name in the Command
Prompt.

Has anyone used the Windows Task Scheduler to run .py scripts, and if so is
there some intracacy to it?

Is there a more UNIX version of a cron program one can run on Windows?

Has anyone written a simple cron program for Windows in Python, or does
anyone see any complication with doing that (which I have not grasped)?

Do I just need to build myself an **IX box?

Eric Pederson
http://www.songzilla.blogspot.com
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::
e-mail me at:
do@something.com
except, increment the "d" and "o" by one letter
and spell something with a "z"
:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::

i just found a cool scheduler called pycron that apparently is written
in python

*my* problem is i forgot how to make python scripts executable -- i have
this foggy memory of 'if __name__ == "__main__":' not getting triggered
if you're using something other than the command prompt, but i am failing
to find it written down anywhere, and pycron tells me it ran my scripts,
but nothing actually happens -- very frustrating
Jul 18 '05 #14
I have gone through the pain of trying to use those commands and use
other available cron clients for Windows to find they are expensive, or
have bugs and are not stable. So I wrote a very simple yet powerful
script that handles all the basic functionality of Cron. It has been
stable and used in production for about a year. The source code is in
Python and you can read it, it is a simple page. I have also created a
version for Windows with an installer that doesn't even require Python
installed in the target machine.

You can find the project here:
http://sourceforge.net/projects/pycron

Emilio.

Jul 18 '05 #15
ian
Hi,
I thought I'd throw in my 2 cents worth.

I have written a freeware task scheduler that might be of interest to
you.
It's called Kirby Alarm And Task Scheduler.
Over 16000 people around the world use it.

Kirby Alarm will run a program, pop up a note, play a sound, or send an
email at whatever intervals you like.
Have a look at http://www.kirbyfooty.com/
or read what others have to say about it at
http://www.download.com/Kirby-Alarm-...ml?tag=stbc.gp

To run a python script just put the following into the program name.
(The quotes MUST be included wherever there are spaces in the command
line)

"C:\Python23\python.exe" "d:\mypython\Say Time.py"
Have a great Christmas!

God bless

Ian

Jul 18 '05 #16
Emilio wrote:
I have gone through the pain of trying to use those commands and use
other available cron clients for Windows to find they are expensive, or
have bugs and are not stable. So I wrote a very simple yet powerful
script that handles all the basic functionality of Cron. It has been
stable and used in production for about a year. The source code is in
Python and you can read it, it is a simple page. I have also created a
version for Windows with an installer that doesn't even require Python
installed in the target machine.

You can find the project here:
http://sourceforge.net/projects/pycron

Emilio.


I find your project useful, but it's not a full "operation planned"
replacement. (I hope I have translate correctly from Italian "Operazioni
pianificate", you'll find it into the control panel).
It's mean that lack the service function. For example, if the pc is
lighted, but no logged-in, pycron don't work!

Why don't add this function? I think that is simple to make with py2exe
help.

If you want I can create a simple GUI that can help the users that have
no knowledge whit contrab sintax.

Michele
Jul 18 '05 #17
ia*@kirbyfooty.com wrote:
Hi,
I thought I'd throw in my 2 cents worth.

I have written a freeware task scheduler that might be of interest to
you.
It's called Kirby Alarm And Task Scheduler.
Over 16000 people around the world use it.


Hi,

Was this written in Python? If so 2 quick questions:

1. what did you use to write the GUI?

2. any chance we could see some of the code for this? (I understand
if not of course)

Thanks,

Esmail
ps: I downloaded the program just a few minutes ago to check out.
Jul 18 '05 #18
ian
Hi Esmail,
Kirby Alarm is written in Clarion.
Sorry, but I want to keep the source code to myself.
Ian

Jul 18 '05 #19
ia*@kirbyfooty.com wrote:
Hi Esmail, Kirby Alarm is written in Clarion. Sorry, but I want to
keep the source code to myself.


Hi, thanks for the info, and no problem.

I'm learning Python, and looking at other's code has been a
great way to learn. (As an aside, I was thinking of this
sort of application as a good project).

cheers,
Esmail
Jul 18 '05 #20

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Leigh Riley | last post: by
4 posts views Thread by Doug | last post: by
8 posts views Thread by Earl Eiland | last post: by
1 post views Thread by av_nagar | last post: by
4 posts views Thread by vagrantbrad | last post: by
2 posts views Thread by erikcw | last post: by
4 posts views Thread by Stephen Cattaneo | last post: by
reply views Thread by Cameron Simpson | last post: by
5 posts views Thread by karxx | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.