---------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. ubuntu:NVIDIA设置性能模式,以降低CPU使用、温度

    NVIDIA设置性能模式,以降低CPU使用.温度 ubuntu安装完NVIDIA显卡驱动后 终端输入 nvidia-settings 选择OpenGL Settings->Image Setti ...

  2. mongdb分布式

    搭建高可用mongodb集群(一)——配置mongodb Posted on 17 十一月, 2013 by lanceyan | 21 Replies 在大数据的时代,传统的关系型数据库要能更高的服 ...

  3. win32程序显示网页

    说是win32,实际程序中使用了atl的东西.所以新建win32程序时,记得勾选使用atl: 代码如下: #include "stdafx.h" #include "Wi ...

  4. “之”字形输出二叉树 python

    “之”字形输出二叉树即第1层从左到右输出,第2层从右到左输出,第3层从左到右输出......第2*n层从右到左输出,第2*n+1层从左到右输出,如下图所示二叉树,“之”字形输出的结果为:1-3-2-4 ...

  5. 判断设备(PC,安Android,iOS)

    //判断是不是PC function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array("An ...

  6. Word操作(基于word2013)【非编程类】

    一.生成目录 1.word支持自动生成目录功能,生成地点为操作时光标的落点 2.生成方式:打开首选项,进入引用标签,如下图所示最左边即为目录选项. 一般有3个内置目录类型 a:手动目录,生成目录后只有 ...

  7. BZOJ1568: [JSOI2008]Blue Mary开公司【李超树】

    Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词"Query"或"Project". 若单词为Q ...

  8. 【java多线程】ConCurrent并发包 - Lock详解

    synchronized的缺陷   我们知道,可以利用synchronized关键字来实现共享资源的互斥访问. Java 5在java.util.concurrent.locks包下提供了另一种来实现 ...

  9. 详解Oracle手动创建数据库几大步骤

    在这里我们将介绍Oracle手动创建数据库几大步骤,包括前期的准备工作,以及具体的实施. Oracle手动创建数据库是本文介绍的重点,希望通过本文能帮助大家更好的利用Oracle.51CTO也向您推荐 ...

  10. Hive之 Hql语法解析

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...