使用批处理,根据文件类型C、C++、java选择执行程序,用于notepad++

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

:: notepad++参数说明
:: %1. FULL_CURRENT_PATH : 表示当前文件的完整路径                      即:E:\java\HelloNpp.java
:: %2. CURRENT_DIRECTORY:  表示当前文件所在目录,此时不包括文件名字       即:E:\java
:: %3. FILE_NAME:          表示当前文件的文件全名,不包括目录            即:HelloNpp.java
:: %4. NAME_PART:          表示当前文件的文件名称,不包括后缀或者扩展名字  即:HelloNpp
:: %5. EXT_PART:           表示当前文件的后缀名或扩展名           	   即: .java
::
:: 1、经测试 批处理区分参数中的大小写,所以c和C是不同的,C是C++的后缀

:: 2、关于空格,目录名有空格的情况,所以需要加双引号“”,否则向批处理文件传输参数时参数就有问题,
:: 再用%~1格式去掉引号
:: %1就是表示批处理的第一个参数,
:: %~1表示删除参数外面的引号
:: 比如有个批处理文件 test.bat  
:: 在cmd中输入命令: test.bat  "test"
:: %1表示的是“test“。 
:: %~1表示的是test,没有了双引号
::  
:: 将该文件命名为“TEST.BAT”放在notepad++的安装路径内
:: 编译:"TEST.BAT" "$(FULL_CURRENT_PATH)" "$(CURRENT_DIRECTORY)" "$(FILE_NAME)" "$(NAME_PART)" "$(EXT_PART)" compile
:: 运行:"TEST.BAT" "$(FULL_CURRENT_PATH)" "$(CURRENT_DIRECTORY)" "$(FILE_NAME)" "$(NAME_PART)" "$(EXT_PART)" run
:: 

@echo off
if {%~5}=={.c} 	goto c
if {%~5}=={.cpp} 	goto cpp
if {%~5}=={.C} 	goto cpp
if {%~5}=={.java} 	goto java

::*************编译*****************

::-------------------------------C语言------------------
:c
if exist "%~2\%~4.exe" del "%~2\%~4.exe"
gcc -Wall "%~1" -o  "%~2\%~4"
if errorlevel 1 goto warn
if {%6}=={run} goto exe  

echo 编译成功
goto end
::-------------------------------C++ ------------------
:cpp
if exist "%~2\%~4.exe" del "%~2\%~4.exe"
g++ -Wall "%~1" -o  "%~2\%~4"
if errorlevel 1 goto warn
if {%6}=={run} goto exe  

echo 编译成功
goto end
::-------------------------------Java-------------------
:java

if exist "%~2\%~4.class" del "%~2\%~4.class"
javac "%~1"
if errorlevel 1 goto warn
if {%6}=={run} goto class  
echo 编译成功
goto end


::*************运行*****************

::-------------------------------EXE----------------------
:exe
"%~2\%~4.exe"
echo.   
echo 删除%~2\%~4.exe
del "%~2\%~4.exe"
goto end

::-------------------------------CLASS----------------------
:class
java -cp "%~2" "%~4"
echo.   

echo 删除%~2\%~4.class
del "%~2\%~4.class"
goto end
::---------------------------------------------------------
:warn
echo 编译错误
goto end
:end
pause