Ele aceita linha de comando, customize do jeito que você quiser ^^
Executando normalmente, voce digita o nome do Projeto e o nome do executável principal.
Você por a pasta com o nome do Projeto na pasta do .bat para criar o portable apartir dos arquivos dessa pasta . Por exemplo na mesma pasta do criarportable.cmd deixe a pasta ImgBurn.
Linha de comando = criarportable.cmd "ImgBurn" "ImgBurn.exe"
Executando normalmente, voce digita o nome do Projeto e o nome do executável principal.
Você por a pasta com o nome do Projeto na pasta do .bat para criar o portable apartir dos arquivos dessa pasta . Por exemplo na mesma pasta do criarportable.cmd deixe a pasta ImgBurn.
Linha de comando = criarportable.cmd "ImgBurn" "ImgBurn.exe"
@echo off
echo DIGITE NOME DO PROJETO OU PASTA DO ARQUIVOS DE PROGRAMAS
echo.
:: Por exemplo o everest eh instalado na pasta >> C:\Arquivos de Programas\CCleaner
::
:: Nesse caso o !PROJETO! seria CCleaner, que eh a pasta em que o exe fica
::
set /P "PROJETO="
echo.
echo.
echo.
echo DIGITE NOME DO EXECUTAVEL PRINCIPAL
echo.
:: Seguindo o exemplo acima do Everest
::
:: O nome do !EXECUTAVEL! seria everest.exe
::
set /P "PROJETO_EXE="
call :CRIAR "%PROJETO%" "%PROJETO_EXE%"
exit
:CRIAR
set "PROJETO=%~1"
set "PROJETO_EXE=%~2"
if not exist "Projeto %PROJETO%" md "Projeto %PROJETO%"
:INI
(
echo ; English
echo ;
echo ; This file can be used to configure build and runtime options for packages
echo ; Lines that begin with a semicolon contain only comments and do not have any effect
echo ; For documentation and to obtain a complete list of options available visit:
echo ;
echo ; Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
echo ;
echo ; Portugues-Brasileiro
echo ;
echo ; Este arquivo pode ser usado para configurar a construcao e runtime options for packages
echo ; Linhas que comecam com ponto e virgula contem apenas comentarios e nao causam efeito
echo ; Para documentacao e obter uma lista completa de opcoes disponiveis visite:
echo ;
echo ; Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
echo ;
echo [Compression]
echo CompressionType=None
echo.
echo [Isolation]
echo DirectoryIsolationMode=Merged
echo.
echo [BuildOptions]
echo ;-------- MSI Parameters ----------
echo ;Enable MSIFilename if you want to generate a Windows Installer package.
echo ;MSIFilename=%PROJETO%.msi
echo ;MSIManufacturer=Unknown
echo ;MSIProductVersion=1.0
echo ;MSIDefaultInstallAllUsers=1
echo ;MSIRequireElevatedPrivileges=1
echo ;MSIInstallDirectory=%PROJETO% ^(VMware ThinApp^)
echo ;MSIProductCode={1E10E0F7-F79A-BE76-B351-934E94ACFEF8}
echo ;MSIUpgradeCode={0FB7CDD6-7B6F-2B96-6597-4524BBA0E075}
echo ;MSIUseCabs=1
echo ;MSICompressionType=Fast
echo ;MSIArpProductIcon=%%ProgramFilesDir%%\%PROJETO_EX E%
echo.
echo ;-------- AppSync Parameters ----------
echo ;AppSyncURL=https://example.com/some/path/PackageName.exe
echo ;AppSyncUpdateFrequency=1d
echo ;AppSyncExpirePeriod=30d
echo ;AppSyncWarningPeriod=5d
echo ;AppSyncWarningFrequency=1d
echo ;AppSyncWarningMessage=This application will become unavailable for use in %%remaining_days%% day^(s^) if it cannot contact its update server. Check your network connection to ensure uninterrupted service.
echo ;AppSyncExpireMessage=This application has been unable to contact its update server for %%expire_days%% day^(s^), so it is unavailable for use. Check your network connection and try again.
echo ;AppSyncUpdatedMessage=
echo ;AppSyncClearSandboxOnUpdate=0
echo.
echo ;-------- Parameters used only during Setup Capture ----------
echo SandboxPath=.
echo AccessDeniedMsg=You are not currently authorized to run this application. Please contact your administrator.
echo CapturedUsingVersion=4.5.0-238809
echo OutDir=bin
echo.
echo ;-------- General Purpose Parameters ----------
echo SandboxName=%PROJETO%
echo InventoryName=%PROJETO%
echo ;PermittedGroups=Administrators;Remote Desktop Users
echo ;RemoveSandboxOnExit=1
echo ;SandboxNetworkDrives=1
echo ;SandboxRemovableDisk=1
echo ;VirtualizeExternalOutOfProcessCOM=0
echo.
echo ;OptionalAppLinks=plugins\*.exe
echo ;RequiredAppLinks=\\server\share\*.exe;c:\abs\path \file.exe
echo VirtualDrives=Drive=c, Serial=4cca7e97, Type=FIXED; Drive=e, Serial=48b0daa7, Type=FIXED
echo ;VirtualDrives=Drive=c, Serial=4cca7e97, Type=FIXED; Drive=d, Serial=4cca7e97, Type=CDROM; Drive=e, Serial=48b0daa7, Type=FIXED
echo ;VirtualComputerName=ASUS
echo.
echo AnsiCodePage=1252
echo LocaleIdentifier=1046
echo.
echo ; If you have problems running a 32 bit application under 64 bit Windows, try enabling this line before building the project
echo ;Wow64=0
echo.
echo QualityReportingEnabled=1
echo.
echo [%PROJETO_EXE%]
echo Source=%%ProgramFilesDir%%\%PROJETO%\%PROJETO_EXE%
echo ReadOnlyData=bin\Package.ro.tvr
echo WorkingDirectory=%%ProgramFilesDir%%\%PROJETO%
echo Shortcuts=%%Desktop%%;%%Programs%%\%PROJETO%;%%App Data%%\Microsoft\Internet Explorer\Quick Launch
echo.
echo [%PROJETO_EXE%]
echo Source=%%ProgramFilesDir%%\%PROJETO%\%PROJETO_EXE%
echo Shortcut=%PROJETO%.exe
)>>"Projeto %PROJETO%\Package.ini"
:PASTAS
for %%a in (
"%%AppData%%"
"%%Common AppData%%"
"%%Common Desktop%%"
"%%Common Programs%%"
"%%Cookies%%"
"%%Desktop%%"
"%%History%%"
"%%Internet Cache%%"
"%%Local AppData%%"
"%%Personal%%"
"%%Program Files Common%%"
"%%ProgramFilesDir%%"
"%%SystemRoot%%"
"%%SystemSystem%%"
"Support"
) do (
if not exist "Projeto %PROJETO%\%%~a" (
md "Projeto %PROJETO%\%%~a"
)
if not exist "Projeto %PROJETO%\%%~a\##Attributes.ini" (
(
echo [Isolation]
echo DirectoryIsolationMode=WriteCopy
)>>"Projeto %PROJETO%\%%~a\##Attributes.ini"
)
)
:REGS
for %%a in (
"HKEY_CURRENT_USER.txt"
"HKEY_LOCAL_MACHINE.txt"
"HKEY_USERS.txt"
) do (
if not exist "Projeto %PROJETO%\%%~a" (
echo.>>"Projeto %PROJETO%\%%~a"
)
)
:BUILD_DAT
(
echo @echo off
echo.
echo setlocal
echo.
echo set PROJECT_DIR=%%PROJECT_PATH%%
echo if exist %%PROJECT_PATH%% goto haspath
echo set PROJECT_DIR=%%~dp0
echo :haspath
echo.
echo if exist "%%THINSTALL_BIN%%\vregtool.exe" goto found
echo set THINSTALL_BIN=%%PROJECT_DIR%%\..\..
echo if exist "%%THINSTALL_BIN%%\vregtool.exe" goto found
echo set "THINSTALL_BIN=C:\Program Files\VMware\VMware ThinApp"
echo if exist "%%THINSTALL_BIN%%\vregtool.exe" goto found
echo set "THINSTALL_BIN=C:\Program Files\VMware\VMware ThinApp"
echo if exist "%%THINSTALL_BIN%%\vregtool.exe" goto found
echo echo Could not find vregtool.exe, please set the environment variable THINSTALL_BIN or install to C:\Program Files\VMware\VMware ThinApp
echo goto failed
echo.
echo :found
echo if not exist "%%THINSTALL_BIN%%\vftool.exe" goto failed
echo if not exist "%%THINSTALL_BIN%%\tlink.exe" goto failed
echo.
echo if not exist "%%PROJECT_DIR%%\bin" mkdir "%%PROJECT_DIR%%\bin"
echo if exist "%%PROJECT_DIR%%\bin\*.exe" del /f /q "%%PROJECT_DIR%%\bin\*.exe"
echo if exist "%%PROJECT_DIR%%\bin\*.exe" goto failed
echo if exist "%%PROJECT_DIR%%\bin\*.dat" del /f /q "%%PROJECT_DIR%%\bin\*.dat"
echo if exist "%%PROJECT_DIR%%\bin\*.dat" goto failed
echo if exist "%%PROJECT_DIR%%\bin\*.msi" del /f /q "%%PROJECT_DIR%%\bin\*.msi"
echo if exist "%%PROJECT_DIR%%\bin\*.msi" goto failed
echo.
echo "%%THINSTALL_BIN%%\vregtool" "%%PROJECT_DIR%%\bin\Package.ro.tvr" ImportDir "%%PROJECT_DIR%%"
echo IF ERRORLEVEL 1 GOTO failed
echo.
echo "%%THINSTALL_BIN%%\vftool" "%%PROJECT_DIR%%\bin\Package.ro.tvr" ImportDir "%%PROJECT_DIR%%"
echo IF ERRORLEVEL 1 GOTO failed
echo.
echo "%%THINSTALL_BIN%%\tlink" "%%PROJECT_DIR%%\Package.ini" -OutDir "%%PROJECT_DIR%%\bin"
echo IF ERRORLEVEL 1 GOTO failed
echo.
echo goto done
echo.
echo :failed
echo echo *** Build failed ***
echo goto final
echo.
echo :done
echo del "%%PROJECT_DIR%%\bin\*.tvr"
echo del "%%PROJECT_DIR%%\bin\*.tvr.thfd"
echo echo ---------------------------------------------
echo echo Build complete
echo :final
echo.
echo endlocal
)>>"Projeto %PROJETO%\build.bat"
if exist "%ProgramFiles%\%PROJETO%\%PROJETO_EXE%" goto ADP
if exist "%~dp0%PROJETO%" if exist "%~dp0%PROJETO%\%PROJETO_EXE%" goto LOCAL
if not exist "%ProgramFiles%\%PROJETO%\%PROJETO_EXE%" goto NADP
)
:ADP
if exist "Projeto %PROJETO%\%%ProgramFilesDir%%" (
md "Projeto %PROJETO%\%%ProgramFilesDir%%\%PROJETO%"
) else (
md "Projeto %PROJETO%\%%ProgramFilesDir%%\%PROJETO%"
)
if exist "%ProgramFiles%\%PROJETO%\%PROJETO_EXE%" (
xcopy /E /C /G /H /Q /Y "%ProgramFiles%\%PROJETO%\*.*" "Projeto %PROJETO%\%%ProgramFilesDir%%\%PROJETO%" > nul
) else (
msg * %PROJETO_EXE% nao existe na pasta %ProgramFiles%\%PROJETO%
)
dir /a:d /b /s "%~dp0Projeto %PROJETO%\%%ProgramFilesDir%%" >> "%~dp0pastas.txt"
for /f "tokens=*" %%a in (pastas.txt) do (
(
echo [Isolation]
echo DirectoryIsolationMode=Full
)>>"%%a\##Attributes.ini"
)
del /f /q "%~dp0pastas.txt" > nul
:LOCAL
if exist "%~dp0%PROJETO%" (
if exist "%~dp0%PROJETO%\%PROJETO_EXE%" (
xcopy /E /C /G /H /Q /Y "%~dp0%PROJETO%\*.*" "%~dp0Projeto %PROJETO%\%%ProgramFilesDir%%\%PROJETO%\"
)
)
if exist "%~dp0Projeto %PROJETO%\%%ProgramFilesDir%%\%PROJETO%\%PROJETO_E XE%" (
msg * Finalizado com sucesso !
) else (
msg * Houve erro na copia dos arquivos localmente .
pause
)
pause
exit
:NADP
msg * %PROJETO_EXE% nao existe na pasta %ProgramFiles%\%PROJETO%
exit
Comment