Em BASH Shell Command Search Seqüência , uma FUNÇÃO DE Shell tem precedência sobre um comando BUILTIN . Não existe tal conceito implementado no shell do Windows de acordo com o meu melhor conhecimento (embora uma macro doskey
possa se assemelhar a ela): um interno o comando tem precedência sobre qualquer coisa com o mesmo nome (consulte Sequência de pesquisa de comandos ). Portanto, cd [parameters]
exibe o nome ou altera o diretório atual sempre (consulte cd /?
).
Você pode usar cd.cmd [parameters]
ou renomear seu script cmd
, consulte o próximo exemplo. Este script cdn
executa o comando interno cd
e então altera o título da janela CLI atual para algo como o caminho do diretório atual:
@rem cdn.bat
@rem change directory (and drive) || abort script processing in case of bad success
@cd /D %* || @goto :eof
@rem eliminate (if any in %*) trailing backslashes, surrouding double-quotes
@rem and/or (combined) symbols to current, parent or root directory (., .., \)
@call :window_title "%CD%"
@rem or, to title window to bare folder name, use:
@rem @for /F "tokens=*" %%G in ("%CD%") do @title %%~nG%%~xG
@goto :eof
:window_title
@if "%~p1%~n1%~x1" == "\%~n1%~x1" (
@rem window title to 'X:\folder' on highest-level path or to 'X:\' on drive root
@title %~d1%~p1%~n1%~x1
) else (
@rem window title to 'X:\...\folder' otherwise (i.e. nor root, nor highest-level)
@title %~d1^\ ..^\%~n1%~x1
)
@exit /B