查看clink.bat
文件
让我们看一下clink.bat文件:
:: Copyright (c) 2012 Martin Ridgers
:: License: http://opensource.org/licenses/MIT
@echo off
:: Mimic cmd.exe's behaviour when starting from the start menu.
if /i "%1"=="startmenu" (
cd /d "%userprofile%"
shift /1
)
:: Check for the --profile option.
if /i "%1"=="--profile" (
set clink_profile_arg=--profile "%~2"
shift /1
shift /1
)
:: If the .bat is run without any arguments, then start a cmd.exe instance.
if "%1"=="" (
call :launch
goto :end
)
:: Pass through to appropriate loader.
if /i "%processor_architecture%"=="x86" (
"%~dp0\clink_x86.exe" %*
) else if /i "%processor_architecture%"=="amd64" (
if defined processor_architew6432 (
"%~dp0\clink_x86.exe" %*
) else (
"%~dp0\clink_x64.exe" %*
)
)
:end
set clink_profile_arg=
goto :eof
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:launch
start "Clink" cmd.exe /s /k ""%~dpnx0" inject %clink_profile_arg%"
exit /b 0
对此进行了很好的评论,因此我们可以看到以下按时间顺序排列的结构:
- 移动到
%userprofile%
文件夹
- 如果调用在表单中,则将设置
clink_profile_arg
为 的值PROFILE_DIR
clink.bat --profile PROFILE_DIR
- 如果没有参数跳转到
launch
代码然后结束(通过跳转到文件末尾)
- 根据系统的架构选择正确
.exe
的(技术上调用此函数的进程架构:%PROCESSOR_ARCHITECTURE% 的可能值)
- “
launch
定义”(技术上的标签)
您已经正确识别出launch
标记的代码是可以更改的,让我们进一步看一下:
start "Clink" cmd.exe /s /k ""%~dpnx0" inject %clink_profile_arg%"
所以这会运行start
带有一些参数的命令,包括字符串“Clink”以及看起来是cmd.exe
带有自己命令行参数的 a。%~dpnx0
是:驱动器、路径、名称、x张力、第0个参数(参见syntax -args)和之前定义的变量。%clink_profile_arg%
看着start
:
启动单独的命令提示符窗口以运行指定的程序或命令。
粗体强调是我自己的,但我们现在可以立即看到您为什么观察到您所描述的行为。
我们现在有几个选择要考虑。
选项 1 - 新clink_terminal.bat
基于clink.bat
虽然我们可以编辑clink.bat
更好的选择是制作一个我们仅用于终端的单独文件。
我们可以简单地:launch
改为:
cmd.exe /s /k ""%~dpnx0" inject %clink_profile_arg%"
然后用你的commandline:
withclink_terminal.bat
代替。
选项 2 - 直接使用clink
它的命令行参数
希望通过您已经看到,您可以有效地替换调用 the.bat
并简单地clink
直接调用它的参数。
这里假设您使用的是 x64 机器:
commandline: "cmd.exe /s /k "PATH_TO_CLINK\\clink_x64.exe inject --profile PROFILE_DIR""
设置 GUID !!!
终端中的所有配置文件都有一个 GUID,您可以轻松地自己生成一个。
打开 PowerShell 窗口并运行new-guid
PS C:\ANYWHERE> New-Guid
Guid
----
c97d08e9-03fc-491f-bbd7-9a12b9d6e191