From 3d11c791a7fccb9f3a7b0769821b5469f4a8bd9f Mon Sep 17 00:00:00 2001 From: bin456789 Date: Sat, 15 Feb 2025 00:25:37 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E4=BF=AE=E5=A4=8D=20windows=20?= =?UTF-8?q?=E4=B8=8B=E5=8F=82=E6=95=B0=E6=9C=89=E9=97=AE=E5=8F=B7=E6=97=B6?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E4=BC=A0=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reinstall.bat | 19 +++++++++++-------- reinstall.sh | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/reinstall.bat b/reinstall.bat index 67955dd..b1704b0 100644 --- a/reinstall.bat +++ b/reinstall.bat @@ -142,18 +142,21 @@ if not exist reinstall.sh ( call :chmod a+x %thisdir%reinstall.sh ) +rem %* 无法处理 --iso https://x.com/?yyy=123 rem 为每个参数添加引号,使参数正确传递到 bash -for %%a in (%*) do ( - set "param=!param! "%%~a"" -) +rem for %%a in (%*) do ( +rem set "param=!param! "%%~a"" +rem ) -rem 方法1 +rem 转成 unix 格式,避免用户用 windows 记事本编辑后换行符不对 %SystemDrive%\cygwin\bin\dos2unix -q '%thisdir%reinstall.sh' -%SystemDrive%\cygwin\bin\bash -l -c '%thisdir%reinstall.sh !param!' -rem 方法2 -rem %SystemDrive%\cygwin\bin\bash reinstall.sh %* -rem 再在 reinstall.sh 里运行 source /etc/profile +rem 用 bash 运行 +rem %SystemDrive%\cygwin\bin\bash -l %thisdir%reinstall.sh %* 运行后会清屏 +rem 因此不能用 -l +rem 这就需要在 reinstall.sh 里运行 source /etc/profile +rem 或者添加 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH +%SystemDrive%\cygwin\bin\bash %thisdir%reinstall.sh %* exit /b diff --git a/reinstall.sh b/reinstall.sh index e1961e8..219bc17 100644 --- a/reinstall.sh +++ b/reinstall.sh @@ -21,6 +21,7 @@ WINDOWS_EXES='cmd powershell wmic reg diskpart netsh bcdedit mountvol' export LC_ALL=C # 处理部分用户用 su 切换成 root 导致环境变量没 sbin 目录 +# 也能处理 cygwin bash 没有添加 -l 运行 reinstall.sh # 不要漏了最后的 $PATH,否则会找不到 windows 系统程序例如 diskpart export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH