Access console logs ( cmd.exe using Windows XP) - windows

When my application logs lots of lines to the Windows console, the first lines disappear and only the the latest lines are shown. Is it possible to get the first logs anywhere? Are they stored on the system anywhere?

Short answer: No.
However, depending on your access and need, you could:
Redirect the output of the application to a file:
myapp.exe 1>logfile.txt 2>&1
Pipe the output through more, to enable page-by-page viewing of the output:
myapp.exe | more
Increase the number of buffered (displayed) lines of your console window:
Open system menu of the command window (CTRL+SPACE) and select Properties and increase the Height of the Screen Buffer Size
Or programmatically: see this answer

Related

Managing windows when local SAS session starts

When a SAS session starts, there are 5 windows. (Result Viewer, Explorer, Log, Editor, Output).
My desired state is when the session starts:
No result viewer
No output window
No default explorer window
The useable explorer window default open(to clarify this i attached a picture)
Good/Bad explorer window
Enchanced editor open
Log window open
So there will be 3 windows opened at session start, and i would like to resize them into 3 columns.
What i got so far:
I know the task can be done, because i was able to do this on my working computer. Unfortunately they reinstalled my windows without a word, and i lost my setup. And i did not have my autoexec/sasv9cfg file backuped. :(
I can close the output window with dm listing off command in my autoexec.
I can resize the 3 windows if i have them, with dm wdef command as well.
My biggest issue is i cant find again a DM/ODS or any kind of command, which closes the Result Viewer, and the original Explorer, and opens the normal/usable Explorer. In my faded memories i needed only 1 DM/ODS/sth command to achieve these 3 steps at once. Of course, if we can find a solution in more steps, thats also completely fine.
Big thx for any kind of help
You do not want the DMSEXP docked windows (which includes ODS Results tab) at session start up. The only way to do this programmatically is to specify the SAS system option -nodmsexp in the sas.exe command line or config.sys.
So, on my system, I set the target command on my SAS icon to be:
"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe"
-CONFIG "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg"
-NODMSEXP
Tweak the SAS DM session window states by placing this code in your autoexec.sas
dm 'dmsexp;tree on;next;listing off;tile vert' ;
You can also fiddle around with your session start up using the system options:
initstmt=
initcmd

Read current terminal

Is it possible to read what's currently displayed on the windows terminal pragmatically using any available API?
For example, I've got an app that tail's some log files. I'd like to be able to hit a key and open a text editor at the line that is currently being viewed. The problem is the terminal also has scroll bars.
Not easy. Perhaps you could capture the screen and use OCR to identify its contents, or make a shortcut to some sort of macro that selects all the screen and copies the text. But there is no API available to perform the task you ask.
Of course, you can tee the command you're running in the console to a file, and open such file with an editor whenever you like, however it will show the full output of the command and not the visible part. If you like more information on that topic, it is answered in SO - Displaying Windows command prompt output and redirecting it to a file
.

Redirect windows console output from another process to file

I have a DLL which does as plugin into the TS3 client.
The problem is, the plugin provokes a crash that I cannot seem to find in my code directly.
So my idea is to set the Console Output of the console windows in the background (-console option) to a file, because when the program crashes there is no way I can read the console output as the console disappears immediately.
Is there a way to set the output of a crashing console to a file?
Because so far, when using the stdout operator (ts3client_win64 -console > output.txt) it does not write anything to the file. (I assume it cannot close the file handle and loses all its data?) But I want to keep the console output when the crash occurs.
It also has to be said that I can not just run it with a batch file and a pause statement, because when starting the application it opens its own console window (and thats the one of which I want the output).
It is the type of crash one would get from failed (safe) string operations in C like strtok_s or strcpy_s.

How to print something to command window in Visual FoxPro 9?

I am trying to write simple program in Visual FoxPro, I am using built in Help, but cannot find an answer there. There are dozens of samples but they all work with forms, and I just need something like console.out() or printf().
While looking for some samples on internet, found this:
? 2 + 2
This line supposed to print 4, but nothing happens when the program is run from the menu or tool bar.
In the command window, type "set device to screen"
You can create a program, may be called "start.prg" including the line above in the program. This is run everytime Foxpro is started from Desktop.
Click on Tools, Options, File locations, Startup Program,then "modify"
and enter the location of the "start.prg", for example, C:\Program Files\Microsoft Visual Foxpro 9\start.prg
******to print to paper *********************************************
set device to printer
set printer to &&& turn off all open print commands
???" " &&& open printer in raw mode
p_Landscape_On =chr(27)+"&l1O"
p_Landscape_Off =chr(27)+"&l0O"
n_Row=2
#n_Row, 1 say (p_Landscape_On) +(p_Draft)+(p_14inPaper)
n_Row=n_Row+1
******end of printing*****************************
#n_Row,n_Col_fav say (p_Landscape_Off)+(p_12CharPerInch)+p_Portrait)
set printer to
set device to screen
Type this into the Command text box and press Enter. Close all opened tables (if any) in order to see 4.
? is the correct way to display on screen. It will display on the next line of the current main window.
If you are getting no results try SET CONSOLE ON before your ?2+2
Another option, depending on your needs, is to use a WAIT WINDOW, ie WAIT WINDOW 'test'
You can also try ACTIVATE SCREEN prior to printing your text.

VS Console window does not show all results

I am using VS express 2012 to run a code that display content of many files. I found that first files content do not show and when I debug step by step I found that the content show on the console window and disappear when other results show, which means they get pushed out of the window. of course I scroll up and I find the latest files only not all. Is there any option control this feature? and how can I see all results?
To avoid this you should convert your console application to a Windows Forms one and put all the output on a TextBox. Just execute the command on the Form load and redirect all the output to the TextBox.
It's not much work IMHO.
This is the nature of a console application, no different than if you were to echo data to the Windows command prompt. If there is too much data then of course it will scroll off the visible screen.

Resources