Sign in to follow this  
Followers 0

Unable to execute .cmd file

5 posts in this topic

Posted (edited) · Report post

Hi i am unable to execute the file restoredesktop.cmd, here is the sentence

$FileRestore = @DesktopDir & "RestoreDesktop.cmd"
RunWait (@ComSpec & ' /c "' & $FileRestore & '"', @DesktopDir, @SW_HIDE)


Thanks Edited by Delai

Share this post


Link to post
Share on other sites



Posted (edited) · Report post

Change the /c to /k and see what is in the console when you try to run this.

EDIT: Also, remove the @SW_HIDE from the end of the run command or that won't work for you. Edited by BrewManNH

Share this post


Link to post
Share on other sites

Posted · Report post

For it works properly. Tested on Win7 x64 and WinXP on a vm.

Br,
UEZ

Share this post


Link to post
Share on other sites

Posted · Report post

i have found the problem, my file restoredesktop.cmd is the following:
@echo off
IF EXIST %SystemRoot%SysWOW64 "%ProgramFiles%DesktopCmdDesktopcmd64.exe" Restore /n "Layout 1366 x 768" /Y
IF NOT EXIST %SystemRoot%SysWOW64 "%ProgramFiles%DesktopCmdDesktopcmd.exe" Restore /n "Layout 1366 x 768" /Y
EXIT

When i convert my autoit script to exe, it understand the path "%ProgramFiles%DesktopCmdDesktopcmd64.exe" as "C:Program Files (x86)DesktopCmdDesktopcmd64.exe" and then it tells it has not found the specified path
But
When i convert my autoit script to exe checking in the program Aut2exe x64 , it understand the path well "%ProgramFiles%DesktopCmdDesktopcmd64.exe" as "C:Program FilesDesktopCmdDesktopcmd64.exe" and it has worked.
I don´t understand why because when i run the .cmd file separately, it works perfectly, anyone please can explain me
Thanks

Share this post


Link to post
Share on other sites

Posted · Report post

On an x64 system, if the exe file is a 64Bit exe, it will translate the %programfiles% to the location where 64 bit exes are supposed to go, "C:Program Files". If the exe is compiled as a 32 bit exe, it translates that to "C:Program Files (x86)", because that is where 32 bit exes are supposed to go.

You'd be much better off just running the program directly from the autoit script rather than running the batch file from the script, you have much more control over how it will run.

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  
Followers 0