Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
run awk95 using Shell()
I have an awk script to process a text file before importing it. The script
strips rows from the text file after hitting a line containing only " ". This works from the DOS prompt in c:\filepath\: c:\filepath\awk95 "/^ $/{nextfile} 1" c:\filepath\input.txt c:\filepath\output.text The following does not work: strAWKCommandLine = _ "c:\filepath\awk95 " & Chr(34) & "/^ $/{nextfile} 1" & Chr(34) & " c:\filepath\input.txt c:\filepath\output.text" Shell(strAWKCommandLine,1) Another question: While debugging this, how can I keep the DOS window open so I can see any error messages? An example I saw used "/k" : Shell(Environ$("comspec") & " /k yourfile.bat", vbNormalFocus) I can't get that code structure to work. Thanks for any help on using Shell or keeping the DOS window open Larry Mehl --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
run awk95 using Shell()
Larry,
This worked for me: Put "input.txt" and "awk.exe" in the root directory of C: Put these lines in a .bat file called "awk.bat" and put the bat file in the root directory of C: C: cd\ awk95 "/^ $/{nextfile} 1" input.txt output.txt Then make a macro with these lines and run it: Sub Tester() ChDrive "C" ChDir "C:\" Shell ("awk.bat") End Sub (But you really don't need to do this strip operation). HTH, Shockley "L Mehl" wrote in message ... I have an awk script to process a text file before importing it. The script strips rows from the text file after hitting a line containing only " ". This works from the DOS prompt in c:\filepath\: c:\filepath\awk95 "/^ $/{nextfile} 1" c:\filepath\input.txt c:\filepath\output.text The following does not work: strAWKCommandLine = _ "c:\filepath\awk95 " & Chr(34) & "/^ $/{nextfile} 1" & Chr(34) & " c:\filepath\input.txt c:\filepath\output.text" Shell(strAWKCommandLine,1) Another question: While debugging this, how can I keep the DOS window open so I can see any error messages? An example I saw used "/k" : Shell(Environ$("comspec") & " /k yourfile.bat", vbNormalFocus) I can't get that code structure to work. Thanks for any help on using Shell or keeping the DOS window open Larry Mehl --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
run awk95 using Shell()
Shockley --
Thank you for reminding me of that technique. My names "input.txt" and "output.txt" will change, depending on a user selection, so I will revise your suggestion slightly, by writing the bat file in my code for each different user selection, and then running it from the code. I appreciate your help in this project. Larry "shockley" wrote in message ... Larry, This worked for me: Put "input.txt" and "awk.exe" in the root directory of C: Put these lines in a .bat file called "awk.bat" and put the bat file in the root directory of C: C: cd\ awk95 "/^ $/{nextfile} 1" input.txt output.txt Then make a macro with these lines and run it: Sub Tester() ChDrive "C" ChDir "C:\" Shell ("awk.bat") End Sub (But you really don't need to do this strip operation). HTH, Shockley "L Mehl" wrote in message ... I have an awk script to process a text file before importing it. The script strips rows from the text file after hitting a line containing only " ". This works from the DOS prompt in c:\filepath\: c:\filepath\awk95 "/^ $/{nextfile} 1" c:\filepath\input.txt c:\filepath\output.text The following does not work: strAWKCommandLine = _ "c:\filepath\awk95 " & Chr(34) & "/^ $/{nextfile} 1" & Chr(34) & " c:\filepath\input.txt c:\filepath\output.text" Shell(strAWKCommandLine,1) Another question: While debugging this, how can I keep the DOS window open so I can see any error messages? An example I saw used "/k" : Shell(Environ$("comspec") & " /k yourfile.bat", vbNormalFocus) I can't get that code structure to work. Thanks for any help on using Shell or keeping the DOS window open Larry Mehl --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
run awk95 using Shell()
Larry,
It may help you to know that you can variablize the input/output filenames and change the bat file programatically in vba by doing something like: Sub WriteBat() ChDrive "C" sInputFileName = "Input1.txt" sOutputFileName = "Output1.txt" sBat = _ "C:" & vbCrLf & _ "cd\" & vbCrLf & _ "awk95 " & Chr(34) & "/^ $/{nextfile} 1" & Chr(34) & _ " " & sInputFileName & " " & sOutputFileName Open "C:\awk.bat" For Output As #1 Print #1, sBat Close #1 End Sub Regards, Shockley "L Mehl" wrote in message ... Shockley -- Thank you for reminding me of that technique. My names "input.txt" and "output.txt" will change, depending on a user selection, so I will revise your suggestion slightly, by writing the bat file in my code for each different user selection, and then running it from the code. I appreciate your help in this project. Larry "shockley" wrote in message ... Larry, This worked for me: Put "input.txt" and "awk.exe" in the root directory of C: Put these lines in a .bat file called "awk.bat" and put the bat file in the root directory of C: C: cd\ awk95 "/^ $/{nextfile} 1" input.txt output.txt Then make a macro with these lines and run it: Sub Tester() ChDrive "C" ChDir "C:\" Shell ("awk.bat") End Sub (But you really don't need to do this strip operation). HTH, Shockley "L Mehl" wrote in message ... I have an awk script to process a text file before importing it. The script strips rows from the text file after hitting a line containing only " ". This works from the DOS prompt in c:\filepath\: c:\filepath\awk95 "/^ $/{nextfile} 1" c:\filepath\input.txt c:\filepath\output.text The following does not work: strAWKCommandLine = _ "c:\filepath\awk95 " & Chr(34) & "/^ $/{nextfile} 1" & Chr(34) & " c:\filepath\input.txt c:\filepath\output.text" Shell(strAWKCommandLine,1) Another question: While debugging this, how can I keep the DOS window open so I can see any error messages? An example I saw used "/k" : Shell(Environ$("comspec") & " /k yourfile.bat", vbNormalFocus) I can't get that code structure to work. Thanks for any help on using Shell or keeping the DOS window open Larry Mehl --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.600 / Virus Database: 381 - Release Date: 2/28/2004 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Shell to MSAccess | Excel Programming | |||
xp shell command using vba | Excel Programming | |||
Shell | Excel Programming | |||
shell out of excel into another app | Excel Programming | |||
SHELL command | Excel Programming |