From 669e99760261b02968fc43e7793b9e2661e78186 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 12:52:23 -0500 Subject: [PATCH 01/10] flag_exists.cmd to flag_exec.cmd, also to lib as an option --- .../flag_exists.cmd => bin/flag_exec.cmd} | 0 vendor/lib/lib_profile.cmd | 131 ++++++++++++++++++ 2 files changed, 131 insertions(+) rename vendor/{lib/flag_exists.cmd => bin/flag_exec.cmd} (100%) diff --git a/vendor/lib/flag_exists.cmd b/vendor/bin/flag_exec.cmd similarity index 100% rename from vendor/lib/flag_exists.cmd rename to vendor/bin/flag_exec.cmd diff --git a/vendor/lib/lib_profile.cmd b/vendor/lib/lib_profile.cmd index 98bc9f0..55fe62c 100644 --- a/vendor/lib/lib_profile.cmd +++ b/vendor/lib/lib_profile.cmd @@ -44,3 +44,134 @@ exit /b ) popd exit /b + +:flag_exec + @echo off + setlocal + + if "%~1" equ "" call :wrongSyntax + + if not defined CMDER_USER_FLAGS ( + :: in case nothing was passed to %CMDER_USER_FLAGS% + set "CMDER_USER_FLAGS= " + ) + + set "feNot=false" + goto :parseArgument + + :doShift + shift + + :parseArgument + set "currenArgu=%~1" + if /i "%currenArgu%" equ "/setPath" ( + :: set %flag_exists% shortcut + endlocal + set "flag_exists=%~dp0flag_exists" + ) else if /i "%currenArgu%" == "/?" ( + call :help + ) else if /i "%currenArgu%" equ "/help" ( + call :help + ) else if /i "%currenArgu%" equ "/h" ( + call :help + ) else if /i "%currenArgu%" equ "NOT" ( + set "feNot=true" + goto :doShift + ) else ( + if "%~1" equ "" call :wrongSyntax + if "%~2" equ "" call :wrongSyntax + set "feFlagName=%~1" + set "feCommand=%~2" + if not "%~3" equ "" ( + set "feParam=%~3" + ) + ) + + :: to avoid erroneous deteciton like "/do" "/doNOT", which both have a "/do" + :: we added a space after the flag name, like "/do ", which won't match "/doN" + set "feFlagName=%feFlagName% " + :: echo. + :: echo %CMDER_USER_FLAGS% + :: echo %feNOT% + :: echo %feFlagName% + :: echo %feCommand% + :: echo %feParam% + :: echo. + echo %CMDER_USER_FLAGS% | find /i "%feFlagName%">nul + if "%ERRORLEVEL%" == "0" ( + if "%feNOT%" == "false" ( + call %feCommand% %feParam% + ) + ) else ( + if "%feNOT%" == "true" ( + call %feCommand% %feParam% + ) + ) + endlocal + exit /b + + :wrongSyntax + echo The syntax of the command is incorrect. + echo. + echo use /? for help + echo. + endlocal + exit /b + + :help + echo. + echo %%flag_exists%% + echo. + echo Handles with custom arguments for cmder's init.bat. + echo written by xiazeyu, inspired DRSDavidSoft. + echo. + echo Usage: + echo. + echo %%flag_exists%% [/setPath] [NOT] flagName command/program [parameters] + echo. + echo setPath Generate a global varible %%flag_exists%% for + echo quicker use. Following arguments will be ignored. + echo. + echo NOT Specifies that %%flag_exists%% should carry out + echo the command only if the flag is missing. + echo. + echo flagName Specifies which flag name is to detect. It's recommand + echo to use a pair of double quotation marks to wrap + echo your flag name to avoid exceed expectation. + echo. + echo command/program Specifies the command to carry out if the + echo argument name is detected. It's recommand to + echo use a pair of double quotation marks to + echo wrap your command to avoid exceed expectation. + echo. + echo parameters These are the parameters passed to the command/program. + echo It's recommand to use a pair of double quotation marks + echo to wrap your flag name to avoid exceed expectation. + echo. + echo Examples: + echo. + echo these examples are expected to be writted in /config/user-profile.cmd + echo it will use the environment varible "CMDER_USER_FLAGS" + echo. + echo Case 1: + echo. + echo The following command in user-profile.cmd would execute "notepad.exe" + echo. + echo call %%flag_exists%% "/startNotepad" "start" "notepad.exe" + echo. + echo if you pass parameter to init.bat like: + echo. + echo init.bat /startNotepad + echo. + echo Case 2: + echo. + echo The following command in user-profile.cmd would execute "notepad.exe" + echo. + echo call %%flag_exists%% NOT "/dontStartNotepad" "start" "notepad.exe" + echo. + echo UNLESS you pass parameter to init.bat like: + echo. + echo init.bat /dontStartNotepad + echo. + endlocal + exit /b From 9dce9d0f62ca0546347bd490a95722db2eedc92d Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 13:55:54 -0500 Subject: [PATCH 02/10] added exit codes --- README.md | 8 +++---- vendor/bin/{flag_exec.cmd => cexec.cmd} | 30 ++++++++++++++----------- vendor/init.bat | 1 + 3 files changed, 22 insertions(+), 17 deletions(-) rename vendor/bin/{flag_exec.cmd => cexec.cmd} (77%) diff --git a/README.md b/README.md index d50c61f..9e8e711 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ You may find some Monokai color schemes for mintty to match Cmder [here](https:/ | `/svn_ssh [path to ssh.exe]` | Define `%SVN_SSH%` so we can use git svn with ssh svn repositories. | `%GIT_INSTALL_ROOT%\bin\ssh.exe` | | `/user_aliases [file path]` | File path pointing to user aliases. | `%CMDER_ROOT%\config\user-liases.cmd` | | `/v` | Enables verbose output. | not set | -| (custom arguments) | User defined arguments processed by `flag_exists`. Type `%flag_exists% /?` for more useage. | not set | +| (custom arguments) | User defined arguments processed by `cexec`. Type `cexec /?` for more useage. | not set | ### Cmder Shell User Config Single user portable configuration is possible using the cmder specific shell config files. Edit the below files to add your own configuration: @@ -249,7 +249,7 @@ Uncomment and edit the below line in the script to use Cmder config even when la ### Handling with custom arguments when using init.bat -You can pass custom arguments to `init.bat` and use `%flag_exists%` to detect it. +You can pass custom arguments to `init.bat` and use `cexec` to detect it. It is useful when you have multiple modes to execute cmder. @@ -265,7 +265,7 @@ to start init.bat with custom argument(`/startNotepad`) and put ```batch -call %flag_exists% "/startNotepad" "start" "notepad.exe"` +call cexec "/startNotepad" "start" "notepad.exe"` ``` @@ -279,7 +279,7 @@ init.bat the `notepad.exe` won't be executed. -To see detailed usage of `%flag_exists%`, type `%flag_exists% /?` in cmder. +To see detailed usage of `cexec`, type `cexec /?` in cmder. ### Integrating Cmder with [Hyper](https://github.com/zeit/hyper), [Microsoft VS Code](https://code.visualstudio.com/), and your favorite IDEs diff --git a/vendor/bin/flag_exec.cmd b/vendor/bin/cexec.cmd similarity index 77% rename from vendor/bin/flag_exec.cmd rename to vendor/bin/cexec.cmd index c144340..2b1c09f 100644 --- a/vendor/bin/flag_exec.cmd +++ b/vendor/bin/cexec.cmd @@ -19,9 +19,10 @@ set "currenArgu=%~1" if /i "%currenArgu%" equ "/setPath" ( :: set %flag_exists% shortcut endlocal - set "flag_exists=%~dp0flag_exists" + set "ccall=call %~dp0cexec.cmd" + set "cexec=%~dp0cexec.cmd" ) else if /i "%currenArgu%" == "/?" ( - goto :help + call :help ) else if /i "%currenArgu%" equ "/help" ( goto :help ) else if /i "%currenArgu%" equ "/h" ( @@ -55,14 +56,16 @@ echo %CMDER_USER_FLAGS% | find /i "%feFlagName%">nul if "%ERRORLEVEL%" == "0" ( if "%feNOT%" == "false" ( call %feCommand% %feParam% + exit /b 0 ) ) else ( if "%feNOT%" == "true" ( call %feCommand% %feParam% + exit /b 0 ) ) endlocal -exit /b +exit /b 1 :wrongSyntax echo The syntax of the command is incorrect. @@ -74,22 +77,22 @@ exit /b :help echo. -echo %%flag_exists%% +echo CExec - Conditional Exec echo. echo Handles with custom arguments for cmder's init.bat. echo written by xiazeyu, inspired DRSDavidSoft. echo. echo Usage: echo. -echo %%flag_exists%% [/setPath] [NOT] flagName command/program [parameters] +echo cexec [NOT] flagName command/program [parameters] echo. -echo setPath Generate a global varible %%flag_exists%% for +echo /setPath Generate a global varible %%cexec%% for echo quicker use. Following arguments will be ignored. echo. -echo NOT Specifies that %%flag_exists%% should carry out +echo NOT Specifies that cexec should carry out echo the command only if the flag is missing. echo. -echo flagName Specifies which flag name is to detect. It's recommand +echo /[flagName] Specifies which flag name is to detect. It's recommand echo to use a pair of double quotation marks to wrap echo your flag name to avoid exceed expectation. echo. @@ -104,16 +107,17 @@ echo to wrap your flag name to avoid exceed expectation. echo. echo Examples: echo. -echo these examples are expected to be writted in /config/user-profile.cmd -echo it will use the environment varible "CMDER_USER_FLAGS" +echo These examples are expected to be written in %cmder_root%/config/user-profile.cmd +echo CExec evaluates the environment varible "CMDER_USER_FLAGS" and conditionally +echo caries out actions based on flags that are passed. echo. echo Case 1: echo. echo The following command in user-profile.cmd would execute "notepad.exe" echo. -echo call %%flag_exists%% "/startNotepad" "start" "notepad.exe" +echo call cexec "/startNotepad" "start" "notepad.exe" echo. -echo if you pass parameter to init.bat like: +echo If you pass parameter to init.bat like: echo. echo init.bat /startNotepad echo. @@ -121,7 +125,7 @@ echo Case 2: echo. echo The following command in user-profile.cmd would execute "notepad.exe" echo. -echo call %%flag_exists%% NOT "/dontStartNotepad" "start" "notepad.exe" +echo call cexec NOT "/dontStartNotepad" "start" "notepad.exe" echo. echo UNLESS you pass parameter to init.bat like: echo. diff --git a/vendor/init.bat b/vendor/init.bat index f2f3880..6690c40 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -29,6 +29,7 @@ if not defined CMDER_ROOT ( :: Remove trailing '\' from %CMDER_ROOT% if "%CMDER_ROOT:~-1%" == "\" SET "CMDER_ROOT=%CMDER_ROOT:~0,-1%" +call "%cmder_root%\vendor\bin\cexec.cmd" /setpath call "%cmder_root%\vendor\lib\lib_base" call "%cmder_root%\vendor\lib\lib_path" call "%cmder_root%\vendor\lib\lib_console" From 0be94725bd8b138b9e3635e2eb1fb2cc4e8e75fb Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 15:06:13 -0500 Subject: [PATCH 03/10] readme.md --- README.md | 52 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 9e8e711..a0548f7 100644 --- a/README.md +++ b/README.md @@ -247,37 +247,51 @@ Uncomment and edit the below line in the script to use Cmder config even when la # CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder. ``` -### Handling with custom arguments when using init.bat +### Customizing user sessions using `init.bat` custom arguments. -You can pass custom arguments to `init.bat` and use `cexec` to detect it. +You can pass custom arguments to `init.bat` and use `cexec` in your `user_profile.cmd` to evaluate these +arguments then execute commands based on a particular flag being detected or not. -It is useful when you have multiple modes to execute cmder. +`init.bat` creates two shortcuts for using `cexec` in your profile scripts. -If you use + Evaluate flags, runs commands if found, and returns to the calling script and continues. -```batch + ``` + ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd + ``` -init.bat /startNotepad + Example: `%ccall% /startnotepad start notepad.exe` + + Evaluate flags, runs commands if found, and does not return to the calling script. -``` + ``` + cexec=C:\Users\user\cmderdev\vendor\bin\cexec.cmd + ``` + + Example: `%cexec% /startnotepad start notepad.exe` -to start init.bat with custom argument(`/startNotepad`) and put +It is useful when you have multiple tasks to execute `cmder` and need it to initialize +the session differently depending on the task chosen. -```batch +To conditionally start `notepad.exe` when you start a specific `cmder` task: -call cexec "/startNotepad" "start" "notepad.exe"` +* Press win+alt+t +* Click `+` to add a new task. +* Add the below to the `Commands` block: -``` + ```batch + + cmd.exe /k ""%ConEmuDir%\..\init.bat" /startnotepad" + + ``` -into `/config/user-profile.cmd`, then `notepad.exe` will be executed, and once you use +* Add the below to your `%cmder_root%\config\user_profile.cmd` -```batch - -init.bat - -``` - -the `notepad.exe` won't be executed. + ```batch + + %ccall% "/startNotepad" "start" "notepad.exe"` + + ``` To see detailed usage of `cexec`, type `cexec /?` in cmder. From 4aec21ce199c1eb11370cbb6c09a10e2c48ae6e0 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 15:10:35 -0500 Subject: [PATCH 04/10] readme.md --- vendor/bin/cexec.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/bin/cexec.cmd b/vendor/bin/cexec.cmd index 2b1c09f..fc0ac47 100644 --- a/vendor/bin/cexec.cmd +++ b/vendor/bin/cexec.cmd @@ -22,7 +22,7 @@ if /i "%currenArgu%" equ "/setPath" ( set "ccall=call %~dp0cexec.cmd" set "cexec=%~dp0cexec.cmd" ) else if /i "%currenArgu%" == "/?" ( - call :help + goto :help ) else if /i "%currenArgu%" equ "/help" ( goto :help ) else if /i "%currenArgu%" equ "/h" ( From 86544c91886d956d6ff07df18daf070c524c1ee1 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 15:11:50 -0500 Subject: [PATCH 05/10] readme.md --- vendor/bin/cexec.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/bin/cexec.cmd b/vendor/bin/cexec.cmd index fc0ac47..b4bb81e 100644 --- a/vendor/bin/cexec.cmd +++ b/vendor/bin/cexec.cmd @@ -84,7 +84,7 @@ echo written by xiazeyu, inspired DRSDavidSoft. echo. echo Usage: echo. -echo cexec [NOT] flagName command/program [parameters] +echo cexec /setPath [NOT] flagName command/program [parameters] echo. echo /setPath Generate a global varible %%cexec%% for echo quicker use. Following arguments will be ignored. From f84da84e15201aaf121cea8de3322834d58da85c Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 15:12:45 -0500 Subject: [PATCH 06/10] cleanup --- vendor/lib/lib_profile.cmd | 130 ------------------------------------- 1 file changed, 130 deletions(-) diff --git a/vendor/lib/lib_profile.cmd b/vendor/lib/lib_profile.cmd index 55fe62c..9bf08b9 100644 --- a/vendor/lib/lib_profile.cmd +++ b/vendor/lib/lib_profile.cmd @@ -45,133 +45,3 @@ exit /b popd exit /b -:flag_exec - @echo off - setlocal - - if "%~1" equ "" call :wrongSyntax - - if not defined CMDER_USER_FLAGS ( - :: in case nothing was passed to %CMDER_USER_FLAGS% - set "CMDER_USER_FLAGS= " - ) - - set "feNot=false" - goto :parseArgument - - :doShift - shift - - :parseArgument - set "currenArgu=%~1" - if /i "%currenArgu%" equ "/setPath" ( - :: set %flag_exists% shortcut - endlocal - set "flag_exists=%~dp0flag_exists" - ) else if /i "%currenArgu%" == "/?" ( - call :help - ) else if /i "%currenArgu%" equ "/help" ( - call :help - ) else if /i "%currenArgu%" equ "/h" ( - call :help - ) else if /i "%currenArgu%" equ "NOT" ( - set "feNot=true" - goto :doShift - ) else ( - if "%~1" equ "" call :wrongSyntax - if "%~2" equ "" call :wrongSyntax - set "feFlagName=%~1" - set "feCommand=%~2" - if not "%~3" equ "" ( - set "feParam=%~3" - ) - ) - - :: to avoid erroneous deteciton like "/do" "/doNOT", which both have a "/do" - :: we added a space after the flag name, like "/do ", which won't match "/doN" - set "feFlagName=%feFlagName% " - :: echo. - :: echo %CMDER_USER_FLAGS% - :: echo %feNOT% - :: echo %feFlagName% - :: echo %feCommand% - :: echo %feParam% - :: echo. - echo %CMDER_USER_FLAGS% | find /i "%feFlagName%">nul - if "%ERRORLEVEL%" == "0" ( - if "%feNOT%" == "false" ( - call %feCommand% %feParam% - ) - ) else ( - if "%feNOT%" == "true" ( - call %feCommand% %feParam% - ) - ) - endlocal - exit /b - - :wrongSyntax - echo The syntax of the command is incorrect. - echo. - echo use /? for help - echo. - endlocal - exit /b - - :help - echo. - echo %%flag_exists%% - echo. - echo Handles with custom arguments for cmder's init.bat. - echo written by xiazeyu, inspired DRSDavidSoft. - echo. - echo Usage: - echo. - echo %%flag_exists%% [/setPath] [NOT] flagName command/program [parameters] - echo. - echo setPath Generate a global varible %%flag_exists%% for - echo quicker use. Following arguments will be ignored. - echo. - echo NOT Specifies that %%flag_exists%% should carry out - echo the command only if the flag is missing. - echo. - echo flagName Specifies which flag name is to detect. It's recommand - echo to use a pair of double quotation marks to wrap - echo your flag name to avoid exceed expectation. - echo. - echo command/program Specifies the command to carry out if the - echo argument name is detected. It's recommand to - echo use a pair of double quotation marks to - echo wrap your command to avoid exceed expectation. - echo. - echo parameters These are the parameters passed to the command/program. - echo It's recommand to use a pair of double quotation marks - echo to wrap your flag name to avoid exceed expectation. - echo. - echo Examples: - echo. - echo these examples are expected to be writted in /config/user-profile.cmd - echo it will use the environment varible "CMDER_USER_FLAGS" - echo. - echo Case 1: - echo. - echo The following command in user-profile.cmd would execute "notepad.exe" - echo. - echo call %%flag_exists%% "/startNotepad" "start" "notepad.exe" - echo. - echo if you pass parameter to init.bat like: - echo. - echo init.bat /startNotepad - echo. - echo Case 2: - echo. - echo The following command in user-profile.cmd would execute "notepad.exe" - echo. - echo call %%flag_exists%% NOT "/dontStartNotepad" "start" "notepad.exe" - echo. - echo UNLESS you pass parameter to init.bat like: - echo. - echo init.bat /dontStartNotepad - echo. - endlocal - exit /b From 564ef5220e168893899ac1e6f25fba6a455ae065 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 15 Sep 2018 16:25:31 -0500 Subject: [PATCH 07/10] allow conditionally setting environment variables --- vendor/bin/cexec.cmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vendor/bin/cexec.cmd b/vendor/bin/cexec.cmd index b4bb81e..2efcacd 100644 --- a/vendor/bin/cexec.cmd +++ b/vendor/bin/cexec.cmd @@ -55,12 +55,12 @@ set "feFlagName=%feFlagName% " echo %CMDER_USER_FLAGS% | find /i "%feFlagName%">nul if "%ERRORLEVEL%" == "0" ( if "%feNOT%" == "false" ( - call %feCommand% %feParam% + endlocal && call %feCommand% %feParam% exit /b 0 ) ) else ( if "%feNOT%" == "true" ( - call %feCommand% %feParam% + endlocal && call %feCommand% %feParam% exit /b 0 ) ) From bda09bc274b93ba26990d5b490a014184668dae8 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 16 Sep 2018 16:23:22 -0500 Subject: [PATCH 08/10] init.bat update for cexec --- vendor/init.bat | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index 6690c40..9365bd9 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -7,7 +7,6 @@ :: !!! Use "%CMDER_ROOT%\config\user_profile.cmd" to add your own startup commands :: Use /v command line arg or set to > 0 for verbose output to aid in debugging. -endlocal set verbose_output=0 set debug_output=0 set max_depth=1 @@ -333,10 +332,6 @@ if not exist "%initialConfig%" ( echo :: use this file to run your own startup commands echo :: use in front of the command to prevent printing the command echo. -echo :: the next two lines is for "%%flag_exists%%" shortcut, a custom arguments handler -echo :: don't remove it if you need it -echo call "%%cmder_root%%/vendor/lib/flag_exists" "/setPath" -echo. echo :: uncomment this to have the ssh agent load when cmder starts echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-agent.cmd" echo. @@ -348,9 +343,9 @@ echo :: you can add your plugins to the cmder path like so echo :: set "PATH=%%CMDER_ROOT%%\vendor\whatever;%%PATH%%" echo. echo :: arguments in this batch are passed from init.bat, you can quickly parse them like so: -echo :: more useage can be seen by typing "%%flag_exists%% /?" +echo :: more useage can be seen by typing "cexec /?" echo. -echo :: %%flag_exists%% "/customOption" "command/program" +echo :: %%ccall%% "/customOption" "command/program" echo. echo @echo off ) >"%initialConfig%" From 103d0a6cea871d10c3df992861b833c155c6fbb2 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 24 Sep 2018 18:51:55 -0500 Subject: [PATCH 09/10] more headers --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a0548f7..15e7267 100644 --- a/README.md +++ b/README.md @@ -249,26 +249,26 @@ Uncomment and edit the below line in the script to use Cmder config even when la ### Customizing user sessions using `init.bat` custom arguments. -You can pass custom arguments to `init.bat` and use `cexec` in your `user_profile.cmd` to evaluate these +You can pass custom arguments to `init.bat` and use `cexec.cmd` in your `user_profile.cmd` to evaluate these arguments then execute commands based on a particular flag being detected or not. -`init.bat` creates two shortcuts for using `cexec` in your profile scripts. +`init.bat` creates two shortcuts for using `cexec.cmd` in your profile scripts. - Evaluate flags, runs commands if found, and returns to the calling script and continues. +#### `%ccall%` - Evaluates flags, runs commands if found, and returns to the calling script and continues. - ``` - ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd - ``` +``` +ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd +``` - Example: `%ccall% /startnotepad start notepad.exe` - - Evaluate flags, runs commands if found, and does not return to the calling script. +Example: `%ccall% /startnotepad start notepad.exe` - ``` - cexec=C:\Users\user\cmderdev\vendor\bin\cexec.cmd - ``` - - Example: `%cexec% /startnotepad start notepad.exe` +#### `%cexec%` - Evaluates flags, runs commands if found, and does not return to the calling script. + +``` +cexec=C:\Users\user\cmderdev\vendor\bin\cexec.cmd +``` + +Example: `%cexec% /startnotepad start notepad.exe` It is useful when you have multiple tasks to execute `cmder` and need it to initialize the session differently depending on the task chosen. From 8ff459b309cbcd10314041eb8296679925b0a785 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 24 Sep 2018 19:07:48 -0500 Subject: [PATCH 10/10] fixes --- vendor/bin/cexec.cmd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vendor/bin/cexec.cmd b/vendor/bin/cexec.cmd index 2efcacd..3193f4f 100644 --- a/vendor/bin/cexec.cmd +++ b/vendor/bin/cexec.cmd @@ -86,7 +86,7 @@ echo Usage: echo. echo cexec /setPath [NOT] flagName command/program [parameters] echo. -echo /setPath Generate a global varible %%cexec%% for +echo /setPath Generate a global varibles %%ccall%% and %%cexec%% for echo quicker use. Following arguments will be ignored. echo. echo NOT Specifies that cexec should carry out @@ -113,9 +113,9 @@ echo caries out actions based on flags that are passed. echo. echo Case 1: echo. -echo The following command in user-profile.cmd would execute "notepad.exe" +echo The following command in `user_profile.cmd` would execute "notepad.exe" and continue running the `user_profile.cmd` echo. -echo call cexec "/startNotepad" "start" "notepad.exe" +echo "%ccall%" "/startNotepad" "start" "notepad.exe" echo. echo If you pass parameter to init.bat like: echo. @@ -123,9 +123,9 @@ echo init.bat /startNotepad echo. echo Case 2: echo. -echo The following command in user-profile.cmd would execute "notepad.exe" +echo The following command in `user_profile.cmd` would execute "notepad.exe" and stop running the `user_profile.cmd` echo. -echo call cexec NOT "/dontStartNotepad" "start" "notepad.exe" +echo "%cexec%" NOT "/dontStartNotepad" "start" "notepad.exe" echo. echo UNLESS you pass parameter to init.bat like: echo.