使用批处理选择运行控制台程序(简易cui)
批处理可以用于启动一些控制台程序.昨天在github上找到一个有意思的项目OpenRA : 一个开源的红警游戏.
发现该游戏的启动程序(launch-game)是用批处理写的
就学习了下
*没有玩过批处理的小哥哥 可以看一下这篇文章 https://blog.csdn.net/qq_36838191/article/details/83046599
部分源码:
:choosemod
set /P mod=Select mod (ra, cnc, d2k, ts) or --exit:
if /I "%mod%" EQU "--exit" (exit /b)
if "%mod%" EQU "ra" (goto launchmod)
if "%mod%" EQU "cnc" (goto launchmod)
if "%mod%" EQU "ts" (goto launchmod)
if "%mod%" EQU "d2k" (goto launchmod)
echo.
echo Unknown mod: %mod%
echo.
goto choosemod :launchmod
OpenRA.Game.exe Game.Mod=%mod% %*
goto end
:launch
OpenRA.Game.exe %*
这里使用了 "select" and "goto"
根据这个模子,我将几个测试的批处理合并了下.
路径:
D:\CCpphtml\Java\test.java
D:\CCpphtml\Lua\test.lua
D:\CCpphtml\Python\test.py
@echo off
:choose
cls
echo D:\CCpphtml\Java\test.java
echo D:\CCpphtml\Lua\test.lua
echo D:\CCpphtml\Python\test.py
set /P mod=Select (:Java, :Lua, :Python, e:exit) or default(go on):
if "%mod%" EQU "" (goto java)
if "%mod%" EQU "" (goto lua)
if "%mod%" EQU "" (goto python)
if "%mod%" EQU "e" exit
REM 不断选择
goto choose :java
cd /d D:\CCpphtml\Java
javac -encoding UTF- test.java
java test
pause
goto choose :lua
lua D:\CCpphtml\Lua\test.lua
pause
goto choose :python
python D:\CCpphtml\Python\test.py
pause
goto choose
示例如下:

操作是不是很简单?
让我意外的是:当我的输入不匹配 1 2 3 e 时 会运行上一 test程序
而我只要不断回车 就可以不断刷新结果.
End... 希望对你们有所帮助吧.(代码应该能理解吧..)
当然,这似乎可以用一些高级语言(调用批处理)设计出一个 "控制台程序运行系统"
对于纯批处理来说,这已经很方便了.
本文为Dumb原创,请勿抄袭..
使用批处理选择运行控制台程序(简易cui)的更多相关文章
- 通过批处理来运行python程序
>准备 >>在所用的python源程序最前面指定该源程序要用那种可执行程序去运行它 >>例如: #!/bin/sh shell脚本 #!/usr/bin/perl per ...
- windows批处理运行java程序
明确需求 今天你编了一个java swing版照片查看器,想让计算机上的所有照片默认打开方式都改成你的照片查看器. 使用工具软件 很多工具软件都是不把jre打包到exe中的,这就是说打包之后的exe只 ...
- 10分钟 在linux里创建.net core helloworld控制台程序
官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 :选择和你本机适用的Linux版本,我这里用的是18.04. 第 ...
- 国产中标麒麟Linux部署dotnet core 环境并运行项目 (二) 部署运行控制台项目
背景 在上一篇文章安装dotnet core,已经安装好dotnet core了.之前只是安装成功了dotnet, 输入dotnet --info,可以确认安装成功了,但是在运行代码时,还是报错了,本 ...
- CentOS6.5 64bit 运行Mono程序
前几日和一技术友聊天,认为转Java好,java可以在Linux下运行,貌似c#不可以哦,就做了个尝试,运行控制台程序和窗口程序(界面编程,Linux下Java好像也比较烦吧) 现在贴环境: 参考:C ...
- 控制台程序秒变Windows服务(Topshelf)
项目中有些时候需要写服务,一般我们都是先创建控制台程序,测试,运行,成功之后再创建windows服务程序,这样好麻烦啊,有没有简单的控制台程序直接变成Widnows服务,经过查找,找到了Topshel ...
- .NET C# 【小技巧】控制台程序,运行是否弹出窗口选择!
选中控制台程序项目,右键→属性→应用程序栏→输出类型: 1.Windows 应用程序(不弹出提示框)! 2.控制台应用程序(弹出提示框)! 3.类库(类库生成dll,是不能直接运行的,类库供应用程序调 ...
- VC++中的C运行时库浅析(控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)
1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的.C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于 ...
- Mac OS X上用CoreCLR运行一个真正的.NET控制台程序
这个真正的控制台程序来自corefxlab,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软.Linux.苹果的logo. CoreClrHelloWorld ...
随机推荐
- PyQt5 & Qt Designer使用小结
开始在知乎写文章的原因,主要还是想整理平时的经验,方便自己以后查看,有机会的话大家也可以交流吧. 11月中旬由于项目需要,和另一名实习生负责使用Python开发一个数据分析的小软件. 虽然才开始接触Q ...
- ...扩展运算符+rest参数+call/apply/bind
之前在set,map里面有提过扩展运算符的概念,但是今天偶然遇到一个问题,类似于扩展运算符的经典用法,突然发现对其了解不是很深,所以再来整理一下扩展运算符的相关知识. 重点:扩展运算符内部调用的是数据 ...
- jmxtrans + influxdb + granafa 监控套件使用手册
需求说明 随着大数据组件的日益完善,需要随时随地保持各个组件的日常运行,对各个组件的监控势在必行.为了减少运维部门的负担,通过筛选,我们使用 jmxtrans + influxdb + granafa ...
- CountDownLatch和CyclicBarrier的比较
1.CountDownLatch是线程组之间的等待,即一个(或多个)线程等待N个线程完成某件事情之后再执行:而CyclicBarrier则是线程组内的等待,即每个线程相互等待,即N个线程都被拦截之后, ...
- charts_03
table 数值获取: 1.http://www.w3school.com.cn/jsref/dom_obj_all.asp 2.http://blog.csdn.net/xs_zgsc/articl ...
- PHP 页面中实现数据的增删改查
main页面(主页面) <table width="100%" border="1" cellpadding="0" cellspac ...
- layui文件上传中如何先判断后再弹出文件选择框
前言:layui中的上传,如何在点击上传按钮前阻止file的默认打开文件选择框呢?我想点击后先判断下,如果判断结果不符合,就直接弹出提示框,而不是文件选择框,判断符合才进行文件选择.但是在layui的 ...
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...
- electron--Tray添加图标和上下文菜单到系统通知区(系统托盘)
const { app, Menu, Tray } = require('electron'); //系统托盘图标目录 appTray = new Tray(path.join(__dirname, ...
- Android AARCH64 平台的 OpenCL 配置
原文地址:Android AARCH64 平台的 OpenCL 配置 Android AARCH64 平台的 OpenCL 配置 开发环境 IDE: Android Studio 3.4.1 Andr ...