Jump to content

New wishlist (7.2.0+)


Recommended Posts


Hi,

my wish is a FILEMOVE command that better works.

Problem is that the MOVE /Y command has problems when the targed Fíles/Folders exisits.

When I use FILEMOVE in the WPI script to move in AllUsers/Programs for example Winrar to Tools/Winrar, first time it works

perfect. But by the an anonther (double) Winrar installation the Winrar folder was not moved.

move command returns Error Message "Access Denied"

Regards

Jackson

Link to comment
Share on other sites

  • 1 month later...

Thank you mritter,

Sorry it's been a while before a reply.

The problem with this approach is that if I stick the CD\DVD in the computer, and launch wpi.hta where the useroptions.js has "Load desktop before install" unchecked (false), it starts installing automatically which is good, but then if a {REEBOT} is required, the desktop won't load after a restart, which is what I want it to do.

Any other ideas?

Another approach we can take, depending on how feasible it is, is to add a new configuration option to tell wpi to launch another exe instead of

sysdir+'\\mshta.exe "'+wpipath+'\\Common\\Installer.hta

after a reboot, and in this way, the exe itself can determine if the desktop is loaded or not (using a windows api function for example) and then launch wpi with the appropriate useroptions.js.

But this assumes that wpi (wether it be Install.hta or WPI.hta) can be passed useroptions.js when resuming an install after a reboot.

Thank you.

@icnocop: For now, make 2 useroptions.js files. One with "Load desktop before install" checked, and one with it unchecked. Then do

WPI.hta options=useroptions_checked.js

or leave as is for the default options file with it unchecked. (or vice versa).

I am still waiting on input about my post for command line args for all (most of) the user settings.

Link to comment
Share on other sites

I see what you are asking for now, but see no reason for it. Most people DO NOT want the desktop loaded so reg entries can be made, drivers installed, etc. You could do all that first, reboot, rest of software.

I will think about it.....................

Link to comment
Share on other sites

  • 1 month later...

Have you pressed alt+g while in the WPI main interface?

The are dozens of conditions, plus more are being added for the next version.

I am SURE you can find something to differ between the pc's.

computername IS on the list for the next version.

Edited by Kelsenellenelvian
Link to comment
Share on other sites

  • 3 weeks later...

Has there been any consideration given to a command like {CREATESHORTCUT}. So far everything that i've required for my installs has been covered except this. To date I've used a VBScript (with parameters passed) to accomplish this task.

Link to comment
Share on other sites

  • 2 weeks later...
Hi,

my wish is a FILEMOVE command that better works.

Problem is that the MOVE /Y command has problems when the targed Fíles/Folders exisits.

When I use FILEMOVE in the WPI script to move in AllUsers/Programs for example Winrar to Tools/Winrar, first time it works

perfect. But by the an anonther (double) Winrar installation the Winrar folder was not moved.

move command returns Error Message "Access Denied"

Regards

Jackson

For this purpose FILEMOVE must do a COPY /Y (or a XCOPY with more options and a DEL or RD afterwards.

Therefore I've wrote the following script which does exactly this.

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
IF EXIST "%SYSTEMDRIVE%\SetWPIEnv.cmd" CALL "%SYSTEMDRIVE%\SetWPIEnv.cmd"

SET SOURCE="%~1"
SET TARGET="%~2"
IF "%~3"=="" (
SET /A LOOPS=0
) ELSE (
SET /A LOOPS=%~3
)
IF NOT "%OVERWRITELOOPS%"=="" SET /A LOOPS=%OVERWRITELOOPS%

IF %SOURCE%=="" GOTO :HELP
IF %TARGET%=="" SET TARGET=!CD!

IF /I "%UNDOMOVE%"=="true" (
ECHO Tausche Quelle und Ziel um die Verschiebung rueckgaengig zu machen.
SET CHANGE=%SOURCE%
SET SOURCE=%TARGET%
SET TARGET=%CHANGE%
SET CHANGE=
)

IF %SOURCE%==%SOURCE:\=% (
CALL :WAIT "%ALLUSERSPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%" "%USERPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%"

IF %TARGET%==%TARGET:\=% (
CALL :MOVE "%ALLUSERSPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%" "%ALLUSERSPROFILE%\STARTM~1\Programme\%TARGET:~1,-1%"
) ELSE (
CALL :MOVE "%ALLUSERSPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%" "%TARGET:~1,-1%"
)

IF %TARGET%==%TARGET:\=% (
CALL :MOVE "%USERPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%" "%USERPROFILE%\STARTM~1\Programme\%TARGET:~1,-1%"
) ELSE (
CALL :MOVE "%USERPROFILE%\STARTM~1\Programme\%SOURCE:~1,-1%" "%TARGET:~1,-1%"
)
) ELSE (
CALL :WAIT %SOURCE%
CALL :MOVE %SOURCE% %TARGET%
)

GOTO :END

:WAIT
SET FOUND=false
:LOOP
FOR %%X IN (%*) DO (
IF EXIST "%%~X" SET FOUND=true
)
IF /I "%FOUND%"=="true" GOTO :NEXT
IF %LOOPS% LEQ 0 GOTO :NEXT
ECHO Warte bis Quelle existiert ^(%LOOPS%^)...
"%~dp0sleep.exe" 1
SET /A LOOPS-=1
GOTO :LOOP
:NEXT
IF %LOOPS% LEQ 0 (
CALL :ERRORMSG "Quelle existiert nicht."
GOTO :END
)
GOTO :EOF

:MOVE
SET SRC="%~1"
SET DEST="%~2"
IF NOT EXIST %SRC% GOTO :END

DIR /A:D %SRC% >NUL 2>NUL
IF %ERRORLEVEL%==1 (
SET ISFILE=TRUE
) ELSE (
SET ISFILE=FALSE
)

SET PARAMS=/V /I /F /G /H /R /Y

IF NOT EXIST %DEST% MD %DEST%
IF /I %ISFILE%==FALSE (
IF "%SRC:~-2,1%"=="\" SET SOURCE="%SRC:~1,-2%"
IF "%DEST:~-2,1%"=="\" SET TARGET="%DEST:~1,-2%"
FOR %%T IN (%SRC%) DO SET DEST="%DEST:~1,-1%\%%~nxT"
SET PARAMS=%PARAMS% /E
)
IF NOT EXIST %DEST% MD %DEST%

XCOPY %PARAMS% %SRC% %DEST%

IF NOT %ERRORLEVEL%==0 (
CALL :ERRORMSG "Es ist ein Fehler (ERRORLEVEL: %ERRORLEVEL%) aufgetreten."
GOTO :END
)

IF %ISFILE%==TRUE (
DEL /F /Q %SRC%
) ELSE (
RD /S /Q %SRC%
)

GOTO :END

:HELP
ECHO.Anwendung: %~nx0 source [target]
ECHO.
GOTO :END

:ERRORMSG
ECHO FEHLER: %~1
GOTO :EOF

:END
ENDLOCAL

You can call this script (eMove.cmd) with

eMove "WinRAR" "Tools"

The script checks the startmenu-folder in %USERPROFILE% and %ALLUSERSPROFILE%, creates (if neccessary) the Tools-folder, copies WinRAR into Tools and deletes the old WinRAR folder.

The script should be something better but it works and so I've never changed it.

It works also with shortcuts (e.g. eMove.cmd "YouApp.lnk" "just another Folder")

--> I can not discribe all variables because I wrote this script a very long time ago. :-)

Al

Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...