diff --git a/mkfile.bat b/mkfile.bat new file mode 100644 index 0000000..11854a4 --- /dev/null +++ b/mkfile.bat @@ -0,0 +1,49 @@ +@echo off +chcp 65001 +setlocal enabledelayedexpansion + +:: 检查参数是否存在 +if "%~1"=="" ( + echo 用法: %~nx0 文件名(不带扩展名) + exit /b 1 +) + +set "NAME=%~1" +set "NAME_UPPER=%NAME:_=_%" +set "NAME_UPPER=%NAME_UPPER:"=%" +for %%A in (%NAME_UPPER%) do ( + set "NAME_UPPER=!NAME_UPPER:%%A=%%~A!" +) +set "NAME_UPPER=!NAME_UPPER:.=_!" + +:: 创建目录结构 +mkdir include\solution 2>nul +mkdir src 2>nul +mkdir tests 2>nul + +:: 生成 include/solution/a.h +( +echo #ifndef INC_!NAME_UPPER!_H +echo #define INC_!NAME_UPPER!_H +echo #ifdef __cplusplus +echo extern "C" { +echo #endif +echo. +echo #ifdef __cplusplus +echo } +echo #endif +echo #endif +) > include\solution\%NAME%.h + +:: 生成 src/a.c +( +echo #include ^ +) > src\%NAME%.c + +:: 生成 tests/test_a.cpp +( +echo #include ^ +echo #include ^ +) > tests\test_%NAME%.cpp + +echo 文件创建完成。 diff --git a/mkfile.sh b/mkfile.sh new file mode 100644 index 0000000..3e250c6 --- /dev/null +++ b/mkfile.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# 检查参数 +if [ $# -ne 1 ]; then + echo "用法: $0 <文件名(不带扩展名)>" + exit 1 +fi + +filename="$1" +upper_filename=$(echo "$filename" | tr '[:lower:]' '[:upper:]') + +# 创建目录(如果不存在) +mkdir -p ./include/solution ./src ./tests + +# 创建 ./include/solution/a.h +cat > ./include/solution/"$filename".h < ./src/"$filename".c < +EOF + +# 创建 ./tests/test_a.cpp +cat > ./tests/test_"$filename".cpp < +#include +EOF