mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 09:49:12 +08:00
rename /bin/have.bat to /vendor/lib/flag_exists.cmd
Please use %flag_exists% instead of using have
This commit is contained in:
parent
6af44441fe
commit
861f99d64b
@ -248,7 +248,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 `have.bat` (or `have` for shortcut) to detect it.
|
||||
You can pass custom arguments to `init.bat` and use `%flag_exists%` to detect it.
|
||||
|
||||
It is useful when you have multiple modes to execute cmder.
|
||||
|
||||
@ -264,7 +264,7 @@ to start init.bat with custom argument(`/startNotepad`) and put
|
||||
|
||||
```batch
|
||||
|
||||
call have "/startNotepad" "cmd /c start notepad.exe"`
|
||||
call %flag_exists% "/startNotepad" "cmd /c start notepad.exe"`
|
||||
|
||||
```
|
||||
|
||||
@ -278,7 +278,7 @@ init.bat
|
||||
|
||||
the `notepad.exe` won't be executed.
|
||||
|
||||
Detailed usage of `have` can be seen by typing `have /?` in cmder.
|
||||
Detailed usage of `%flag_exists%` can be seen by typing `%flag_exists% /?` in cmder.
|
||||
|
||||
This feature is usually for external execution.
|
||||
|
||||
@ -304,7 +304,7 @@ And here's the related fragment of my `user-profile.cmd`:
|
||||
|
||||
```batch
|
||||
|
||||
call have NOT "/noautorun" "cmd /c start %cmder_root%\bin\vsCode\Code.exe --user-data-dir %vsCodeUserData% --extensions-dir %vsCodeExtensionsDir% %* %vsCodeUserData%\code.code-workspace"
|
||||
call %flag_exists% NOT "/noautorun" "cmd /c start %cmder_root%\bin\vsCode\Code.exe --user-data-dir %vsCodeUserData% --extensions-dir %vsCodeExtensionsDir% %* %vsCodeUserData%\code.code-workspace"
|
||||
|
||||
```
|
||||
|
||||
|
9
vendor/init.bat
vendored
9
vendor/init.bat
vendored
@ -310,9 +310,10 @@ 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 one lines is for "have" shortcut, a custom arguments handler
|
||||
echo :: the next two lines is for "%%flag_exists%%" shortcut, a custom arguments handler
|
||||
echo :: don't remove it if you need it
|
||||
echo set "CMDER_USER_FLAGS=%*"
|
||||
echo set "CMDER_USER_FLAGS=%%*"
|
||||
echo call "%%cmder_root%%\vendor\lib\flag_exists"
|
||||
echo.
|
||||
echo :: uncomment this to have the ssh agent load when cmder starts
|
||||
echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-agent.cmd"
|
||||
@ -325,9 +326,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 "have /?"
|
||||
echo :: more useage can be seen by typing "%%flag_exists%% /?"
|
||||
echo.
|
||||
echo :: have "/customOption" "your custom command"
|
||||
echo :: %%flag_exists%% "/customOption" "your custom command"
|
||||
echo.
|
||||
echo @echo off
|
||||
) >"%initialConfig%"
|
||||
|
43
bin/have.bat → vendor/lib/flag_exists.cmd
vendored
43
bin/have.bat → vendor/lib/flag_exists.cmd
vendored
@ -1,4 +1,5 @@
|
||||
@echo off
|
||||
set "flag_exists=%~dp0flag_exists"
|
||||
setlocal
|
||||
|
||||
if "%~1" equ "" goto :wrongSyntax
|
||||
@ -7,7 +8,7 @@ if not defined CMDER_USER_FLAGS (
|
||||
set "CMDER_USER_FLAGS= "
|
||||
)
|
||||
|
||||
set "haveBatNOT=false"
|
||||
set "feNOT=false"
|
||||
goto :parseArgument
|
||||
|
||||
:doShift
|
||||
@ -22,13 +23,13 @@ if /i "%currenTarg%" == "/?" (
|
||||
) else if /i "%currenTarg%" equ "/h" (
|
||||
goto :help
|
||||
) else if /i "%currenTarg%" equ "NOT" (
|
||||
set "haveBatNOT=true"
|
||||
set "feNOT=true"
|
||||
goto :doShift
|
||||
) else (
|
||||
if "%~1" equ "" goto :wrongSyntax
|
||||
if "%~2" equ "" goto :wrongSyntax
|
||||
set "haveBatArgName=%~1"
|
||||
set "haveBatCommand=%~2"
|
||||
set "feArgName=%~1"
|
||||
set "feCommand=%~2"
|
||||
goto :detect
|
||||
)
|
||||
|
||||
@ -36,21 +37,21 @@ if /i "%currenTarg%" == "/?" (
|
||||
:: to avoid erroneous deteciton like "/do" "/doNOT", both have a "/do"
|
||||
:: but if it works like "/do " "/doNOT ", "/do " won't match "/doN"
|
||||
set "CMDER_USER_FLAGS=%CMDER_USER_FLAGS% "
|
||||
set "haveBatArgName=%haveBatArgName% "
|
||||
set "feArgName=%feArgName% "
|
||||
:: echo.
|
||||
:: echo %CMDER_USER_FLAGS%
|
||||
:: echo %haveBatNOT%
|
||||
:: echo %haveBatArgName%
|
||||
:: echo %haveBatCommand%
|
||||
:: echo %feNOT%
|
||||
:: echo %feArgName%
|
||||
:: echo %feCommand%
|
||||
:: echo.
|
||||
echo %CMDER_USER_FLAGS% | find /i "%haveBatArgName%">nul
|
||||
echo %CMDER_USER_FLAGS% | find /i "%feArgName%">nul
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
if "%haveBatNOT%" == "false" (
|
||||
call "%haveBatCommand%"
|
||||
if "%feNOT%" == "false" (
|
||||
call "%feCommand%"
|
||||
)
|
||||
) else (
|
||||
if "%haveBatNOT%" == "true" (
|
||||
call "%haveBatCommand%"
|
||||
if "%feNOT%" == "true" (
|
||||
call "%feCommand%"
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
@ -63,15 +64,17 @@ echo.
|
||||
exit /b
|
||||
|
||||
:help
|
||||
echo have.bat
|
||||
echo Handles with custom arguments for cmder's init.bat
|
||||
echo written by xiazeyu, inspired DRSDavidSoft
|
||||
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 HAVE [NOT] argName command
|
||||
echo %%flag_exists%% [NOT] argName command
|
||||
echo.
|
||||
echo NOT Specifies that have.bat should carry out
|
||||
echo NOT Specifies that %%flag_exists%% should carry out
|
||||
echo the command only if the condition is false.
|
||||
echo.
|
||||
echo argName Specifies which argument name is to detect.
|
||||
@ -90,7 +93,7 @@ echo Case 1:
|
||||
echo.
|
||||
echo The following command in user-profile.cmd would execute "notepad.exe"
|
||||
echo.
|
||||
echo call have "/startNotepad" "cmd /c start notepad.exe"
|
||||
echo call %%flag_exists%% "/startNotepad" "cmd /c start notepad.exe"
|
||||
echo.
|
||||
echo if you pass parameter to init.bat like:
|
||||
echo.
|
||||
@ -100,7 +103,7 @@ echo Case 2:
|
||||
echo.
|
||||
echo The following command in user-profile.cmd would execute "notepad.exe"
|
||||
echo.
|
||||
echo call have NOT "/dontStartNotepad" "cmd /c start notepad.exe"
|
||||
echo call %%flag_exists%% NOT "/dontStartNotepad" "cmd /c start notepad.exe"
|
||||
echo.
|
||||
echo UNLESS you pass parameter to init.bat like:
|
||||
echo.
|
Loading…
Reference in New Issue
Block a user