Jump to content
Sign in to follow this  
stg68

Please help on quotation!!! (@ComSpec)

Recommended Posts

stg68

Can't make it work when spaces are in the directory names. Tried any possible quotations..

All my directories and script in "My Documents"

Your help will be appreciated!!

Global $ToolPath = @ScriptDir&"\Myutility" ;;;; \My Documents\main.au3)

Global $myoutput = $ToolPath&"\output"

Global $appspath = $ToolPath&"\apps"

Global $foldertochecksum = @ProgramFilesDir

$runme = @ComSpec & ' /c ' & $appspath&'\md5sums.exe -n -e -b' & ' ' &$foldertochecksum& ' > ' & $myoutput&'\out.txt'

msgbox(0,"",$runme)

RunWait($runme,"",@SW_HIDE)

Share this post


Link to post
Share on other sites
Reg2Post

Try using a triple quote (""") where you need it for the paths with spaces.

Or, use short path names.

Share this post


Link to post
Share on other sites
Spiff59

or, a careful mix of single and double quotes...

$runme = @ComSpec & ' /c "' & $appspath & 'md5sums.exe" -n -e -b' & ' ' & $foldertochecksum & ' > "' & $myoutput & 'out.txt"'

Msgbox(0,"",$runme)

Share this post


Link to post
Share on other sites
stg68

Thank you for your assistance! It still not working after I changed it as you suggested in both cases below:

Where @ScriptDir=c:temp

OR

@ScriptDir=c:tempmy program

It only works when @ScriptDir=c:temp AND no double quotes used.

Any other suggestions will be appreciated!

Global $ToolPath = @ScriptDir&"md5sums"

Global $myoutput = $ToolPath&"output"

Global $appspath = $ToolPath&"apps"

Global $Foldertosums = @ScriptDir&"7-zip"

DirCreate ($ToolPath)

DirCreate ($myoutput)

DirCreate ($appspath)

$runme = @ComSpec & ' /c "' & $appspath&'md5sums.exe -n -e -b"' & ' ' &$Foldertosums& ' > "' & $myoutput&'out.txt"'

msgbox(0,'',$runme)

RunWait($runme,"",@SW_SHOWNORMAL)

Share this post


Link to post
Share on other sites
BrewManNH

You have no quotes around the $FolderTosums variable.

Try this:

$runme = @ComSpec & ' /c "' & $appspath & 'md5sums.exe -n -e -b"' & ' "' & $Foldertosums & '"' & ' > "' & $myoutput & 'out.txt"'

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
Spiff59

I'd fixed your first and third paths, neglecting the second.

BrewmanNH has now added that as well, but I think one portion of his string ought to be what I posted 'md5sums.exe" -n -e -b' rather than 'md5sums.exe -n -e -b"'

Share this post


Link to post
Share on other sites
stg68

Global $ToolPath = @ScriptDir&"md5sums"

Global $myoutput = $ToolPath&"output"

Global $appspath = $ToolPath&"apps"

Global $Foldertosums = @ScriptDir&"7-zip"

DirCreate ($ToolPath)

DirCreate ($myoutput)

DirCreate ($appspath)

Still does not work even where @ScriptDir=c:temp

DOES NOT WORK --- $runme = @ComSpec & ' /c "' & $appspath&'md5sums.exe -n -e -b"' & ' ' &$Foldertosums& ' > "' & $myoutput&'out.txt"'

DOES NOT WORK --- $runme = @ComSpec & ' /c "' & $appspath & 'md5sums.exe -n -e -b"' & ' "' & $Foldertosums & '"' & ' > "' & $myoutput & 'out.txt"'

WORKS! --- $runme = @ComSpec & ' /c ' & $appspath & 'md5sums.exe -n -e -b' & ' ' & $Foldertosums & ' > ' & $myoutput & 'out.txt'

msgbox(0,'',$runme)

RunWait($runme,"",@SW_SHOWNORMAL)

PS Just making sure it work with ScriptDir=c:temp then will try @ScriptDir=c:tempmy program

Share this post


Link to post
Share on other sites
Spiff59

Does it look correct when displayed by the message box?

I don't have the program you're running but this looks good to me when displayed on the screen:

$runme = @ComSpec & ' /c "' & $appspath & 'md5sums.exe" -n -e -b "' & $Foldertosums & '" > "' & $myoutput & 'out.txt"'

Or, move the one quote after the parms as Brew had it...

$runme = @ComSpec & ' /c "' & $appspath & 'md5sums.exe -n -e -b"  "' & $Foldertosums & '" > "' & $myoutput & 'out.txt"'

One of those ought to work.

Edited by Spiff59

Share this post


Link to post
Share on other sites
BrewManNH

By the way, a consolewrite of the $runme variable is a LOT easier to read than trying to stuff it into a msgbox.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
stg68

It is still not working ;) I am starting to suspect that it may be related to the md5sums.exe PC-Tools utility.. (http://www.pc-tools.net/win32/md5sums/)

I am providing link to download this utility in case have time..

Thank you for your kindness and support!

Share this post


Link to post
Share on other sites
Spiff59

I think you're right... that 2005 utility does not handle long filenames.

Search the Examples Forum for "MD5". I'm sure you'll find something of use.

Share this post


Link to post
Share on other sites
stg68

Thank You!

Share this post


Link to post
Share on other sites
guinness

Or why not CRC32?

#include <WinAPIEx.au3>

ConsoleWrite(_CRC32(@ScriptFullPath) & @CRLF)

Func _CRC32($sFilePath) ; By Yashied, modified by guinness.
    Local $hFileOpen = FileOpen($sFilePath, 0 + 16)
    If $hFileOpen = -1 Then
        Return SetError(1, 0, 0)
    EndIf
    Local $bData = FileRead($hFileOpen)
    FileClose($hFileOpen)
    Local $iLength = BinaryLen($bData), $tData

    If $iLength = 0 Then
        Return SetError(2, 0, 0)
    EndIf
    $tData = DllStructCreate('byte[' & $iLength & ']')
    DllStructSetData($tData, 1, $bData)
    Return Hex(_WinAPI_ComputeCrc32(DllStructGetPtr($tData), $iLength), 8)
EndFunc   ;==>_CRC32

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
stg68

Thank you!

Can you please recommend where to download “WinAPIEx.au3”? And where to place it locally?

Share this post


Link to post
Share on other sites
guinness

Search the Examples section and then place next to your script.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
stg68

Thank you!

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  

  • Similar Content

    • goodmanjl531
      By goodmanjl531
      Hope someone can help as quotes within quotes is always confusing.  I am creating a silent install of printer software and want to call via runwait comspec line.
      The call within a cmd line is below
      samsung.exe /s /n"Samsung SL-M3220ND" /p"xxx"
      xxx will be stored as a variable  $PrinterIP which would be as example  10.10.10.20    I need to use a variable as i am doign this for a business and need it to be based on the store i install at that has a specific IP range.
       
      I started with the below as 2 possibilities but no luck..
      RunWait(@ComSpec & "/c " & "samsung.exe /s /n""Samsung SL-M3220ND"" /p""" & $PrinterIP ") RunWait(@ComSpec & "/c " & "samsung.exe /s /n'Samsung SL-M3220ND' /p'" & $PrinterIP '") but i cant get it to compile as i have errors on the line..  thanks in advance.
    • FrancescoDiMuro
      By FrancescoDiMuro
      Good morning AutoIt community!
      Today, I'm here to ask you if you know how to run an .exe from cmd.exe ( Command Prompt )...
      My intention is to read a .ini file where I store an information that has to be included in the shell, and run an .exe with that information...
      I'll give you an example
      Local $aFileCartellaAuditCopy = _FileListToArray($sPercorsoAuditCopy, "*.txt") If @error Then MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della lista dei file nella directory" & @CRLF & $sPercorsoAuditCopy & @CRLF & "Errore: " & @error) Return False Else Local $iPID = Run("cmd.exe" & ' /k "C:\Users\Portatile-60\Desktop\HmiCheckLogIntegrity.exe" "C:\Users\Portatile-60\Desktop\AuditTrailDosaggio0_20170327_151335_DOSAGGIO_PW_01.txt"') ; & " /k " & '"' & $sHmiCheckLogIntegrity & '"' & " " & '"' & $sPercorsoAuditCopy & "\" & $aFileCartellaAuditCopy[1] & '"', "", @SW_SHOW, $STDOUT_CHILD) Return True EndIf This code is in a function, that returns False if it can retrive at least a file from the path stored in the .ini file...
      Else
      I would like to run the Command Prompt with the .exe and with a parameter of that .exe, but it seems to not work properly.

      Could please anyone tell me why?

      Thanks  
    • WoodGrain
      By WoodGrain
      Hi guys,
      This is probably an obvious one, but I really don't use this command at all so am hoping you can spot my mistake.
      I'm running a powershell script on a schedule with the following script in a function, the function is being called in a loop, but the console process is not closing in the background and I end up with a bunch of console windows running in the background:
      Run(@comspec & ' /k PowerShell.exe -STA -NonInteractive -ExecutionPolicy ByPass -Command "& ''Z:\Powershell\365\GetNextDetails.ps1'' "', "", @SW_HIDE) Thanks!
    • FMS
      By FMS
      Hello,
      I've some troubles whit the run command.
      Below u see 2 command's , 1 is working and the other not. (the first isn't working)
      I think the problem is in te space between program and files.Also I've treid every thing i could think of or the helpfiles handed to me.
      (or maybe I din't find the correct answer:))
      I tried so mush that i don't know anymore if it's the space between program files or not.
      Could somebody point me in the right direction?
      Not working:
      Run(@ComSpec & " /c psexec -i \\127.0.0.1 -u username -p pass -h -d /accepteula C:\Program Files\some_prog\Shell.exe" ,"C:\tools", @SW_HIDE) Working :
      Run(@ComSpec & " /c psexec -i \\127.0.0.1 -u username -p pass /accepteula cmd" , "C:\tools" , @SW_HIDE)  
       
       
       
       
       
       
    • FMS
      By FMS
      hello,
      I'm trying to make a check if a process is running on a remote PC.
      This is what i got this far when I edit a found snippet on this forum.
       
      The function _CMDreturn returns the output of the command line command.
      In this output I want to scan if there is a line whit "process mspaint was not found".
      This I'm trying to do whit StringLeft.
      The problem is that I don't get any error's and also don't get a message if it doesn't exist.
      Could somebody say to me what I'm doing wrong here?
      Or iff there is a better way to do this?
      Thanks in advanced.
       
      #include <Constants.au3> $result= _CMDreturn('C:\Tools\Ps\pslist.exe mspaint') msgbox(0,"Version",$result) Func _CMDreturn($sCommand) $cmdreturn = "" $stream = Run(@ComSpec & " /c " & $sCommand, @SystemDir, @SW_HIDE, $STDOUT_CHILD + $STDIN_CHILD) While 1 $line = StdoutRead($stream) If @error Then ExitLoop If StringLeft($line, 32) = "process mspaint was not found on" Then msgbox(0,"not found",$line) EndIf $cmdreturn &= $line WEnd Return $cmdreturn EndFunc  
×