On 02/11/2012 07:14 AM, Dave Angel wrote:
On 02/11/2012 06:46 AM, Dave Hanson wrote:
On Sat, Feb 11, 2012 at 11:35 AM, Dave Angel<d...@davea.name>  wrote:

(Please don't top-post.  Please put your comments after whatever parts
you're quoting (replying to) )

Apologies Dave.


You need to learn how to create a DOS window (or cmd window, just another name for same thing) in Windows. One way is to use the RUN prompt in the
Start menu, and run the program  CMD.  Another is to go to the Start
Menu->Accessories->DOS box. it's been a long time since I ran Windows, so
it may have some different name, but it should be in your accessories
somewhere. Since I use such a shell constantly, I created a shortcut key
to open one.

Once you do that, you should see a "box" with a C: prompt. It is indeed black, but you can customize it in many ways. From there you can type all the commands that Walter was telling you about. And it normally won't go
away when a program finishes running, so you don't have the "black and
appears for a millisecond" syndrome.

Windows will create one of these if you run console things from the GUI,
but it also destroys them as soon as the program ends.

--

DaveA

I did mention very early on in my query that I had restricted access to
the Dos CMD prompt, hence why I asked if anyone knew how to create a self contained prompt within the Python program. I was under the impression that
the .bat file Walter described would fill that gap.

Thanks for your comments too, but your solution unfortunately is not one I
can use as I cannot do all the usual methods to run the Dos prompt, .bat
files are not a problem, I have used several in the past. My issue is that I cannot give commands directly to the Dos prompt and in turn not "operate"
the python program as I can on my Ubuntu machine.


You still don't say "why" you can't get a traditional DOS prompt. If your Windows is somehow constrained (e.g. company rules) or broken (e.g. somebody deleted some of the dll's in Windows/system32), then it's unclear how we're supposed to guess just which things are going to work in it. it's also unclear whether it's the programmer's machine (yours) that's constrained or only the end user.

In Windows, whenever a console program is launched without a console, one is created for that program. It goes away when the program ends, so it's not real useful for learning and experimentation. However, it does last as long as the program does, so you can just use raw_input to print your "prompt" and accept commands. Just remember you may want to add another one at the end so the user gets a chance to read the last stuff you printed.

CMD is the cononical way to launch such a window, and batch files use CMD by default. So a batch file is one back-door. But you can write your own shell in any programming language you like, and if don't mark it as a GUI app, it'll get a DOS box as well. You can launch programs, including Python programs, from your own shell. And they'll normally continue to use the same shell as your launcher.

Perhaps you didn't realize that CMD takes some command switches of its own. One of them tells it to stick around even when the current batch file ends.

Random thoughts for an incompletely specified set of constraints.


My apologies. You gave lots more detail earlier in the thread, but I didn't make the connection till just now. I only saw the message from Walter and your response and thought I could help.

Some tests. Try a batch file with a PAUSE in it. Do you get to hit enter at that point? If that works, then try making a batch file that runs CMD.EXE. Again, put a PAUSE at the end of the batch file so you can see any errors you might get.

If those don't pan out, write a simple python program that does raw_input() in a loop (or input(), if you're on Python 3.x), and does something trivial with the stuff you type in.

     while True
         indata = raw_input("prompt:")
         print indata


It's not much harder to exec a program based on the contents of indata. In Windows, you don't usually even have to separate out which part is the command, and which part is the parameters like -l

When they eliminated cmd, they may have actually removed the file (or moved it to someplace inaccessible to your account), or they may have just eliminated the more obvious ways of running it.



--

DaveA

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to