Jump to content
Sign in to follow this  
Lemonsun

Messing with command line

Recommended Posts

Lemonsun

I am new for autoit . I liked this tool.

and the tools provided by Members like Big Daddy.(easy to,learn and use )

here is my code :

CODE
#include <Word.au3>

_WordErrorHandlerRegister()

If $CmdLine[0] = 0 Then

; No command line parameters

MsgBox(64, "Testing", "No commandline parameters used.")

ElseIf

$CmdLine[1] = "/myword" Then

$sFilePath = FileOpenDialog("Open Word File", @ScriptDir, "Word Doc (*.Doc)")

If @error Then

MsgBox(4096,"Process Interrupted ", " Process Interrupted by user /System Error ! ")

Else

$sText1 = InputBox("your name", "Write yourname : ", "", "", _

-1, -1, 0, 0)

$sText2 = "."

$oWordApp = _WordCreate($sFilePath, 0, 0)

$oDoc = $oWordApp.ActiveDocument

$oRng1 = $oDoc.Range

$oRng1.InsertAfter ($sText1)

$iEnd = $oRng1.End

$oRng2 = $oDoc.Range($iEnd-StringLen($sText1), $iEnd)

$oRng2.Font.Bold = True

$oRng2.InsertAfter ($sText2)

$iEnd = $oRng2.End

$oRng3 = $oDoc.Range($iEnd-StringLen($sText2), $iEnd)

$oRng2.Font.Bold = False

_WordDocSave($oDoc)

_WordQuit($oWordApp)

endif

endif

I compiled this application and run it from command line like this :

forum.exe /myword ...works ok

Question : Now I want to get the variable $sText1 from the command line as second parameter

probably like this

forum.exe /myword Greg

>> greg is value which must be passed to the script as variable $sText1 ,

and as a second parameter .

How can i accomplish that ... I am messing here ....? I read the manual . but , it seems i did not get it ....??

Share this post


Link to post
Share on other sites
Xenobiologist

Hi,

check the $cmdline[0] whehter it is greater than 1 and then do

$sText1 = $cmdline[2]

So long,

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
Lemonsun

Hi,

check the $cmdline[0] whehter it is greater than 1 and then do

$sText1 = $cmdline[2]

So long,

Mega

would you please show me the changes to be made in my script ?

Share this post


Link to post
Share on other sites
Xenobiologist

Hi,

maybe something like this helps you out:

Switch $CmdLine[0]
    Case 0
        MsgBox(64, "Testing", "No commandline parameters used.")
    Case 1
        If $CmdLine[1] = "/myword" Then _Do()
    Case 2
        Global $sText1 = $CmdLine[2]
EndSwitch

MsgBox(0, "", $sText1)

Func _Do()
    ; your code
EndFunc   ;==>_Do

So long,

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
Lemonsun

Hi !

here is my modifid code with the switch of yours :

#include <Word.au3>

_WordErrorHandlerRegister()


Switch $CmdLine[0]
    Case 0
        MsgBox(64, "Testing", "No commandline parameters used.")
    Case 1
        If $CmdLine[1] = "/myword" Then _Do()
    Case 2
        Global $sText1 = $CmdLine[2]
EndSwitch




MsgBox(0, "", $sText1)



Func _Do()

   $sFilePath = FileOpenDialog("Open Word File", @ScriptDir, "Word Doc (*.Doc)")

If @error Then
   MsgBox(4096,"Process Interrupted ", " Process Interrupted by user /System Error ! ")
Else


$sText1 = InputBox("your name", "Write yourname :  ", "", "", _
    -1, -1, 0, 0)


$sText2 = "."

$oWordApp = _WordCreate($sFilePath, 0, 0)

$oDoc = $oWordApp.ActiveDocument

$oRng1 = $oDoc.Range
$oRng1.InsertAfter ($sText1)
$iEnd = $oRng1.End

$oRng2 = $oDoc.Range($iEnd-StringLen($sText1), $iEnd)
$oRng2.Font.Bold = True
$oRng2.InsertAfter ($sText2)
$iEnd = $oRng2.End

$oRng3 = $oDoc.Range($iEnd-StringLen($sText2), $iEnd)
$oRng2.Font.Bold = False

_WordDocSave($oDoc)


_WordQuit($oWordApp)
endif

EndFunc  ;==>_Do

i run the compiled script forum.exe /myword myname >>>> dont work

what i am trying to do is to get " Myname " from the command line and assign it to $sText1 . to get rid of the dialog !

thanks for your help .

Share this post


Link to post
Share on other sites
Xenobiologist

Hi,

try this:

#include <Word.au3>

_WordErrorHandlerRegister ()

Switch $CmdLine[0]
    Case 0
        MsgBox(64, "Testing", "No commandline parameters used.")
    Case 1
        Global $sText1 = "Unknown"
        If $CmdLine[1] = "/myword" Then _Do()
    Case 2
        Global $sText1 = $CmdLine[2]
        If $CmdLine[1] = "/myword" Then _Do()
EndSwitch

Func _Do()
    $sFilePath = FileOpenDialog("Open Word File", @ScriptDir, "Word Doc (*.Doc)")
    If @error Then
        MsgBox(4096, "Process Interrupted ", " Process Interrupted by user /System Error ! ")
    Else
        $sText2 = "."
        $oWordApp = _WordCreate ($sFilePath, 0, 0)
        $oDoc = $oWordApp.ActiveDocument
        $oRng1 = $oDoc.Range
        $oRng1.InsertAfter ($sText1)
        $iEnd = $oRng1.End
        $oRng2 = $oDoc.Range ($iEnd - StringLen($sText1), $iEnd)
        $oRng2.Font.Bold = True
        $oRng2.InsertAfter ($sText2)
        $iEnd = $oRng2.End
        $oRng3 = $oDoc.Range ($iEnd - StringLen($sText2), $iEnd)
        $oRng2.Font.Bold = False
        _WordDocSave ($oDoc)
        _WordQuit ($oWordApp)
    EndIf
EndFunc   ;==>_Do

So long,

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
Lemonsun

Hi,

try this:

#include <Word.au3>

_WordErrorHandlerRegister ()

Switch $CmdLine[0]
    Case 0
        MsgBox(64, "Testing", "No commandline parameters used.")
    Case 1
        Global $sText1 = "Unknown"
        If $CmdLine[1] = "/myword" Then _Do()
    Case 2
        Global $sText1 = $CmdLine[2]
        If $CmdLine[1] = "/myword" Then _Do()
EndSwitch

Func _Do()
    $sFilePath = FileOpenDialog("Open Word File", @ScriptDir, "Word Doc (*.Doc)")
    If @error Then
        MsgBox(4096, "Process Interrupted ", " Process Interrupted by user /System Error ! ")
    Else
        $sText2 = "."
        $oWordApp = _WordCreate ($sFilePath, 0, 0)
        $oDoc = $oWordApp.ActiveDocument
        $oRng1 = $oDoc.Range
        $oRng1.InsertAfter ($sText1)
        $iEnd = $oRng1.End
        $oRng2 = $oDoc.Range ($iEnd - StringLen($sText1), $iEnd)
        $oRng2.Font.Bold = True
        $oRng2.InsertAfter ($sText2)
        $iEnd = $oRng2.End
        $oRng3 = $oDoc.Range ($iEnd - StringLen($sText2), $iEnd)
        $oRng2.Font.Bold = False
        _WordDocSave ($oDoc)
        _WordQuit ($oWordApp)
    EndIf
EndFunc   ;==>_Do

So long,

Mega

Thanks ....Mega ! why the following switch is not working ? for the third paramer assigning the third variable ??

Switch $CmdLine[0]

Case 0

MsgBox(64, "Testing", "No commandline parameters used.")

Case 1

Global $sText1 = " "

If $CmdLine[1] = "/myword" Then _Do()

Case 2

Global $sText1 = $CmdLine[2]

If $CmdLine[1] = "/myword" Then _Do()

Case 3

Global $sText2 = $CmdLine[3]

If $CmdLine[1] = "/myword" Then _Do()

EndSwitch

Share this post


Link to post
Share on other sites
Lemonsun

Thanks ....Mega ! why the following switch is not working ? for the third paramer assigning the third variable ??

Switch $CmdLine[0]

Case 0

MsgBox(64, "Testing", "No commandline parameters used.")

Case 1

Global $sText1 = " "

If $CmdLine[1] = "/myword" Then _Do()

Case 2

Global $sText1 = $CmdLine[2]

If $CmdLine[1] = "/myword" Then _Do()

Case 3

Global $sText2 = $CmdLine[3]

If $CmdLine[1] = "/myword" Then _Do()

EndSwitch

Everything is clear now and resolved !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.