Chimaera Posted June 24, 2013 Share Posted June 24, 2013 (edited) Ok ive been messing with this bit of code for ages and cant see where its going wrong. Func _Archive_1() $aRarFile = _RecFileListToArray(@ScriptDir, "*.rar|*.part*", 1, 0) ;~ _ArrayDisplay($aRarFile, ".Rar Files") If IsArray($aRarFile) Then For $i = 1 To $aRarFile[0] ;~ If $RarExist = True Then $ArchiveTest = RunWait(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & $aRarFile[$i], "", @SW_SHOW) ; -y -ibck ;~ EndIf Next EndIf Sleep(200) EndFunc ;==>_Archive_1 This should unpack a rar single volume but it doesn't when the filename has a space in it i.e. "single archive.rar" Ive tried as many combibnations as i can think of and it works everytime if you remove the space and fails when the name has a space If i do this $ArchiveTest = RunWait(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & '"' & $aRarFile[$i] & '"', "", @SW_SHOW) It throws the Program files space error if i try and wrap the whole thing it either says archive not found or x.rar is not a valid archive etc(dunno where its getting the .rar part from) Ive aso tried making the array to a string but it still errors Can anyone suggest the way to solve this? Edited June 24, 2013 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
guinness Posted June 24, 2013 Share Posted June 24, 2013 To debug try outputting to ConsoleWrite to see if the quotes are in-lined correctly. 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 24, 2013 Moderators Share Posted June 24, 2013 (edited) Chimaera,Running a couple of ConsoleWrite lines should explain why: Global $aRarFile[1] = ["single archive.rar"] ; Works ConsoleWrite(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & '"' & $aRarFile[0] & '"' & @CRLF) ; Does not ConsoleWrite(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & $aRarFile[0] & @CRLF)M23Edit: I see guinness haad the same idea - but was feeling lazy! Edited June 24, 2013 by Melba23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
guinness Posted June 24, 2013 Share Posted June 24, 2013 Nah, I was doing something else. Chimaera should understand how to do it anyway. 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Tripredacus Posted June 24, 2013 Share Posted June 24, 2013 (edited) Edit: How can I post this with syntax highlighting... the AutoIt button isn't doing it.Why not use Chr(34)? $ArchiveTest = RunWait (@ComSpec & " /k " & Chr(34) & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & Chr(34) & " x " & Chr(34) & $aRarFile[$i] & Chr(34), "", @SW_SHOW) Edited June 24, 2013 by Melba23 Fixed tags Twitter | MSFN | VGCollect Link to comment Share on other sites More sharing options...
Chimaera Posted June 24, 2013 Author Share Posted June 24, 2013 (edited) Which gives me this if i use the Works example from Melba C:Windowssystem32cmd.exe /k "C:Program Files (x86)WinRARWinRAR.exe" x "1" So at a guess the IsArray is providing me with the wrong output (well right from its point of view) Ill run some more tests Edit when i changed it to $i instead of 0 it gave C:Windowssystem32cmd.exe /k "C:Program Files (x86)WinRARWinRAR.exe" x "single archive.rar" and Tripredacus example produces the same And the error they both give is 'C:Program' is not recognized as an internal or external command, operable program or batch file. Edited June 24, 2013 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 24, 2013 Moderators Share Posted June 24, 2013 (edited) Chimaera,Those lines are from your OP - you are not using the same syntax in the 2 lines which is why it does not work. Look at the output and then the syntax - you are missing a couple of double-quotes in the one which does not work because it stops at the first space in the filename. M23 Edited June 24, 2013 by Melba23 Particularly dyslexic fingers today! Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Chimaera Posted June 24, 2013 Author Share Posted June 24, 2013 (edited) this is the latest ive tried with multiple types and it still will not unpack Func _Archive_1() $aRarFile = _RecFileListToArray(@ScriptDir, "*.rar|*.part*", 1, 0) ;~ _ArrayDisplay($aRarFile, ".Rar Files") If IsArray($aRarFile) Then For $i = 1 To $aRarFile[0] ;~ If $RarExist = True Then ConsoleWrite(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & $aRarFile[$i] & @CRLF) ConsoleWrite(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & ' x ' & $aRarFile[$i] & '"' & @CRLF) ConsoleWrite(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & '"' & $aRarFile[$i] & '"' & @CRLF) $ArchiveTest = RunWait(@ComSpec & ' /k ' & '"' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & '"' & $aRarFile[$i] & '"', "", @SW_SHOW) ; -y -ibck ;~ EndIf Next EndIf Sleep(200) EndFunc ;==>_Archive_1 and this is the output C:\Windows\system32\cmd.exe /k "C:\Program Files (x86)\WinRAR\WinRAR.exe" x single archive.rar C:\Windows\system32\cmd.exe /k "C:\Program Files (x86)\WinRAR\WinRAR.exe x single archive.rar" C:\Windows\system32\cmd.exe /k "C:\Program Files (x86)\WinRAR\WinRAR.exe" x "single archive.rar" It should work on that last one... unless im really not seeing the problem Ok more tries later and this did work $ArchiveTest = RunWait(@ComSpec & ' /k ' & '""' & "C:\Program Files (x86)\WinRAR\WinRAR.exe" & '"' & ' x ' & '"' & $aRarFile[$i] & '""', "", @SW_SHOW) I dont understand how adding an extra " at the front and back within a '"' would work but ill run some tests and yet it still gives only single cover for the items C:\Windows\system32\cmd.exe /k "C:\Program Files (x86)\WinRAR\WinRAR.exe" x "single archive.rar" Edited June 24, 2013 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now