LXGZJ237 发表于 2023-2-26 00:58

bat文件 自带的一些变量

bat文件 自带的一些变量
冒号左侧是变量名,右侧输出值
拖入文件和不拖文件 一些变量的值不一样
@echo off
echo %%~d1:%~d1
echo %%~dp1:%~dp1
echo %%~n1:%~n1
echo %%~nx1:%~nx1
echo %%1:%1
echo %%~d0:%~d0
echo %%cd%%:%cd%
echo %%~dp0:%~dp0
echo %%~sdp0:%~sdp0
echo %%0:%0
echo %%~f0: %~f0
pause



LXGZJ237 发表于 2023-2-27 10:05

本帖最后由 2370177068 于 2023-3-3 12:31 编辑

focus009 发表于 2023-2-26 15:01
谢谢分享,请问具体有什么应用场景呢?
比如,Qt自动打包编译好的程序,由于编译器不一样,windeployqt的位置也不一样,所以可以用bat,然后把编译的文件托上去,自动打包到桌面。

这里的自动打包指的是:
windeployqt.exe是Qt自带的工具,用于创建应用程序发布包。 简单来说,这个工具可以自动地将某程序依赖的库、资源拷贝到其所在目录,防止程序在其他电脑上运行报找不到库的错误。
而不是 把程序所有需要的库和其他资源 打包成 单文件程序

你们用的时候记得换一下你们Qt安装的路径,我是C:\Qt\

@echo off
if "%~n1" == "" (
      echo 不要双击,要使用拖放!!!
      echo 无视风险,仍然继续,请回车
      pause
)
:start
@rem 输入数字,设置环境变量
echo 你编译程序使用的Qt版本是?
echo 1:Qt 6.4.2      MinGW      11.2      x64
echo 2:Qt 6.4.2      MSVC2019      x64
echo 3:Qt 5.15.0      MinGW      8.1      x32
echo 4:Qt 5.15.0      MinGW      7.3      x64
echo 5:Qt 5.15.0      MSVC2019      x32
echo 6:Qt 5.15.0      MSVC2019      x64
echo 0:退出
set /p num=
if %num% == 1 goto num1
if %num% == 2 goto num2
if %num% == 3 goto num3
if %num% == 4 goto num4
if %num% == 5 goto num5
if %num% == 6 goto num6
if %num% == 0 goto exit
goto default

@rem Qt 6.4.2 MinGW 11.2 x64
:num1:
set PATH=C:\Qt\6.4.2\mingw_64\bin;C:\Qt\Tools\mingw1120_64\bin;%PATH%
goto ok

@rem Qt 6.4.2 MSVC2019 x64
:num2:
set PATH=C:\Qt\6.4.2\msvc2019_64\bin;%PATH%
goto ok

@rem Qt 5.15.0 MinGW 8.1 x32
:num3:
set PATH=C:\Qt\5.15.0\mingw81_32\bin;C:/Qt/Tools/mingw810_32\bin;%PATH%
goto ok

@rem Qt 5.15.0 MinGW 7.3 x64
:num4:
set PATH=C:\Qt\5.15.0\mingw81_64\bin;C:/Qt/Tools/mingw810_64\bin;%PATH%
goto ok

@rem Qt 5.15.0 MSVC2019 x32
:num5:
set PATH=C:\Qt\5.15.0\msvc2019\bin;%PATH%
goto ok

@rem Qt 5.15.0 MSVC2019 x64
:num6:
set PATH=C:\Qt\5.15.0\msvc2019_64\bin;%PATH%
goto ok

:exit
exit

:default:
cls
echo 您输入的不在1~6之间!
goto start

:ok
@rem 尝试删除桌面的项目目录
rd /Q /S "%USERPROFILE%\Desktop\%~n1"
@rem 在桌面创建项目目录
md "%USERPROFILE%\Desktop\%~n1"
@rem 复制主程序
copy "%1" "%USERPROFILE%\Desktop\%~n1\%~nx1"
@rem 使用Qt自带工具添加缺失DLL等文件
windeployqt "%USERPROFILE%\Desktop\%~n1\%~nx1"
pause

cscz110 发表于 2023-2-26 03:35

,感谢分享 还没见过这么详细的,有心了

龍謹 发表于 2023-2-26 05:18

谢谢分享,Get到了。

tokess 发表于 2023-2-26 06:56

大佬厉害啊

Hacking2heart 发表于 2023-2-26 08:01

谢谢分享,以前从来没注意过两种方式会导致变量有差异。

zgzxp 发表于 2023-2-26 08:55

顶顶,bat还是能做很多事

cq2002 发表于 2023-2-26 09:28

多谢您的分享。吾爱因你而精彩{:1_921:}

cn2jp 发表于 2023-2-26 11:28

具体有什么应用场景呢?

ptime 发表于 2023-2-26 11:49

谢谢分享!!!

zxh1231 发表于 2023-2-26 12:28

非常好,学习了
页: [1] 2
查看完整版本: bat文件 自带的一些变量