---------siwuxie095

 
 

 
 

 
 

 
 

批处理简易计算器

@echo off

::设置窗口标题

title DOS 简易计算器

::设置窗口大小

::设置窗口颜色

color 9f

::设置 xianshi 的值为 N,用于判断是否显示运算优先顺序表

set xianshi=N

echo. & echo.

set /p xianshi=是否显示 DOS 运算符的运算优先顺序表?(Y/N):

:begin

::清屏

cls

if /i "%xianshi%" == "Y" (

echo. & echo.

echo DOS 的各种运算符运算优先顺序表

echo. & echo.

echo "
1 ( ) 分组
"

echo "
2 ! ~ - 一元运算符
"

echo "
3 * / %%
算数运算符
"

echo "
4 + - 算数运算符
"

echo "
5 << >> 二进制逻辑移位
输入表达式时,该符号需添加双引号或转义字符
"

echo "
6 & 二进制按位"与"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
7 ^ 二进制按位"异"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
8 | 二进制按位"或"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
9 = *= /= %%= += -= 算数赋值
输入表达式时,该符号需添加双引号或转义字符
"

echo "
10 &= ^= |= <<= >>= 进制运算赋值
输入表达式时,该符号需添加双引号或转义字符
"

echo "
11 , 逗号运算符
"

rem 不知道为啥,这个地方用 :: 当注释,会出点小毛病,显示"系统找不到指定的驱动器",下面才是注释QAQ

rem 上面的各个回显,回显的内容都添加了双引号,假如不添加双引号,程序就无

rem 法正常显示,这个课题有待进一步研究。另外,第三行的百分号最难处理,它即

rem 使在双引号内还可以作怪,即使添加了转义字符^也不管用,非得用两个百分号

rem 才能将其显示出来。第九行也是如此,%%=在屏幕显示为%=

echo.

)

echo.

echo ================================================================================

echo ================================================================================

echo. & echo.

set /p input=请输入计算表达式:

::这里进行运算,结果为 var。

set /a var=%input%

echo.

echo 计算结果: %input%=%var%

echo.

set /p qingqiu=要不要继续计算?(按回车继续,按任意键退出):

::判断,如果输入的是回车,将进行下一次运算,否则退出程序

if /i "%qingqiu%" == "" (goto begin) else (exit)

 
 

 
 

sublime中:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

------------------------------------------------------------------------

 
 

 
 

一个困惑:

@echo off

echo
请分别输入三个数字:

set /p a=

set /p b=

set /p c=

echo
合并结果为:

set e= %a%

set /p var=%e:~-7%<nul

set e= %b%

set /p var=%e:~-7%<nul

set e= %c%

set /p var=%e:~-7%<nul

echo.

pause

 
 

sublime中:

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

如果输入其他字符,如 a b c + - _ (注意:等号 = 例外),

都会正常显示,但输入个位数字就无法显示,如下:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

关于等号 =,不能单独一行 或 位于开头

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

修改一下:对每个 <nul 前面加个空格

(程序又没问题了…很奇怪〔等号依然不能放一行的开头〕)

 
 

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

 
 

 
 

set 续4的更多相关文章

  1. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  2. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  3. iOS 开发者账号到期续费流程

    1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...

  4. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  5. CI-持续集成(1)-软件工业“流水线”概述

    CI-持续集成(1)-软件工业“流水线”概述 1   概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...

  6. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)

    ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...

  7. [译]Godot系列教程三 - 场景实例化(续)

    场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...

  8. 【小白的CFD之旅】13 敲门实例【续3】

    接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...

  9. 【小白的CFD之旅】12 敲门实例【续2】

    接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...

  10. jquery实现简单瀑布流布局(续):图片懒加载

    # jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...

随机推荐

  1. 作业要求20181023-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 03

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 版本控制:https://git.coding.net/liuyy08 ...

  2. QT Creator快捷键不能用

    我现在搞明白了,热键之所以不行,是因为我开了Fakevim原因.关了fakevim就能用热键了. 如果开了Fakevim,连基本的Ctrl+C,这样的复制快捷键都不能用. 快速添加方法实体(.cpp) ...

  3. 使用peach工具进行fuzz测试

    本文简要介绍了Fuzz 工具Peach的使用,并通过文件格式 Fuzz举例阐述了 Peach Pit 文件的编写. 本文转自“绿盟科技博客”:http://blog.nsfocus.net/peach ...

  4. LG4719 【模板】动态dp 及 LG4751 动态dp【加强版】

    题意 题目描述 给定一棵\(n\)个点的树,点带点权. 有\(m\)次操作,每次操作给定\(x,y\),表示修改点\(x\)的权值为\(y\). 你需要在每次操作之后求出这棵树的最大权独立集的权值大小 ...

  5. 使用xUnit为.net core程序进行单元测试(2)

    第一部分: http://www.cnblogs.com/cgzl/p/8283610.html 下面有一点点内容是重叠的.... String Assert 测试string是否相等: [Fact] ...

  6. 详解hdparm: linux下的硬盘测速工具

    hdparm的功能:显示与设定硬盘的参数.hdparm可检测,显示与设定IDE或SCSI硬盘的参数. 语法: hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A & ...

  7. Linux进程间通信——使用共享内存(转)

    一.什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式.不同进程之间共享的内存通常安排为同一段物理内存. ...

  8. vmware esxi 4.1单IP访问不同机器

    1 vmware ESXI先创建虚拟机ROS作为路由  ROS设置两张网卡 WAN网卡对应外网IP LAN网卡对应LAN IP 设置网卡名 int set 0 name=wai             ...

  9. 简单实现高并发处理秒杀思路(redis分布式锁)

    利用redis的单线程特性 setnx       (SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值. getset 自动将key对应到value并且返 ...

  10. Accessing data in Hadoop using dplyr and SQL

    If your primary objective is to query your data in Hadoop to browse, manipulate, and extract it into ...