copy_hsp_hap.bat 1.87 KB
::copy_hsp_hap.bat
@echo off

@rem 65001代表UTF-8的代码页,解决.bat脚本打印中文输出乱码
chcp 65001

rem 开启延迟变量
setlocal enabledelayedexpansion

rem 获取当前目录路径,有两种方式:一种是%cd%,另一种是%~dp0
rem %cd%:任何可[运行命令目录],需要注意的是,这里的执行命令目录有可能和脚本实际存储目录不同

rem %~dp0%:[脚本文件的存储目录],注意,目录的路径为全路径,并且带结尾的反斜杠\
rem 如【D:\tmp> D:\bat_demo\folder2\copy_hsp_hap.bat】

rem 执行bat脚本的命令目录:如:D:\tmp>
set "BASE_DIR=%cd%"
echo "batDirectory=%BASE_DIR%"

rem set batDirectory=%~dp0%
rem echo "batDirectory=%batDirectory%"

set subPath=build\default\outputs\default
set hspHapFolder=hspHapFolder

rem 获取父路径
for %%d in (%~dp0..) do set parentDirectory=%%~fd
rem echo parentDirectory=%parentDirectory%

set hspHapDirectory=%parentDirectory%\%hspHapFolder%
echo hspHapDirectory=%hspHapDirectory%


IF not EXIST %hspHapDirectory% (
	rem ECHO File missing
	mkdir %hspHapDirectory%
) ELSE (
	rem  ECHO File found
)
 
rem echo.  
rem echo 显示指定路径下的目录列表,不包括子目录
rem for /D %%z in ("%BASE_DIR%\*") do (
rem 	echo "%%z"
rem 	rem set "dirPath=!BASE_DIR!\%%w"
rem 	
rem 	set "hspHapFile=!%%w!\%subPath%-default-signed.hsp"
rem     echo directory: "!hspHapFile!"
rem )

echo.
rem echo 显示当前目录下的文件夹列表,不包括子目录
for /d %%w in (*) do (
	rem echo "%%w"
	set "hspFile=%BASE_DIR%\%%w\%subPath%\%%w-default-signed.hsp"
	set "hapFile=%BASE_DIR%\%%w\%subPath%\%%w-default-signed.hap"

	rem 后面加上续行操作符 ^
	if exist "!hspFile!" (
		rem echo hspFile: "!hspFile!"
		copy "!hspFile!" %hspHapDirectory% 
	)^
	else if exist "!hapFile!" (
		rem echo hapFile: "!hapFile!"
		copy "!hapFile!" %hspHapDirectory%
	)
)
echo 结束

echo.
pause