`
buerkai
  • 浏览: 167143 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

批处理

阅读更多
1. 在export.sprcmd中可以设置生成资源的Java文件清单
Load("mc.sprite")//加载MC资源
ExportBSpriteEx("mc.bsprite", GLOBAL, I256RLE, _8888)设置压色
JavaCreateInterface("IMCAnimDef.java","IMCAnimDef")设置接口名字
JavaExportAnimsID("IMCAnimDef.java", "ANIM_", APPEND|TOUPPER)需要导出的参数类型
//JavaExportFramesID("IMCAnimDef.java", "FRAME_", APPEND|TOUPPER)
JavaCloseInterface("IMCAnimDef.java") 结束

   set PATH=%JDK_HOME%\bin;%PYTHON_PATH%;%PATH%设置收索路径范围

删除一个目录。

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

    /S      除目录本身外,还将删除指定目录下的所有子目录和
            文件。用于删除目录树。

    /Q      安静模式,带 /S 删除目录树时不要求确认

在 SET 命令中添加了两个新命令行开关:

    SET /A expression
    SET /P variable=[promptString]

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:

    ()                  - 分组
    ! ~ -               - 一元运算符
    * / %               - 算数运算符
    + -                 - 算数运算符
    << >>               - 逻辑移位
                       - 按位“与”
    ^                   - 按位“异”
    |                   - 按位“或”
    = *= /= %= += -=    - 赋值
      &= ^= |= <<= >>=
    ,                   - 表达式分隔符

如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用
引号扩起来。在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
那么它显示该表达式的最后值。该分配的操作符在分配的操作符
左边需要一个环境变量名称。除十六进制有 0x 前缀, 八进制
有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022
相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
因为 8 和 9 不是有效的八进制位数。

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。

Md  新建一个路径文件夹
1) 设当前处于D盘根目录
b:\>md \wang\asb
2)设当前处于C盘windows子目录
c:\windows>md d:\wang\asb
3) 设当前处于wang子目录
d:\wang>md asb


COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要复制的文件。
  /A           表示一个 ASCII 文本文件。
  /B           表示一个二进位文件。
  /D           允许解密要创建的目标文件
  destination  为新文件指定目录和/或文件名。
  /V           验证新文件写入是否正确。
  /N           复制带有非 8dot3 名称的文件时,
               尽可能使用短文件名。
  /Y           不使用确认是否要改写现有目标文件
               的提示。
  /-Y          使用确认是否要改写现有目标文件
               的提示。
  /Z           用可重新启动模式复制已联网的文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。



以下是xcopy自己的中文帮助:

复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
                           [/EXCLUDE:file1[+file2][+file3]...]

  source       指定要复制的文件。
  destination  指定新文件的位置和/或名称。
  /A           只复制有存档属性集的文件,
               但不改变属性。
  /M           只复制有存档属性集的文件,
               并关闭存档属性。
  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些源时间
               比目标时间新的文件。
  /EXCLUDE:file1[+file2][+file3]...
               指定含有字符串的文件列表。每一个字符串
               必须在文件的单独行中。如果有任何
               字符串与要被复制的文件的绝对路径
               相符,那个文件将不会得到复制。
               例如,指定如 \obj\ 或 .obj 的字符串会排除
               目录 obj 下面的所有文件或带有
               .obj 扩展名的文件。
  /P           创建每个目标文件前提示。
  /S           复制目录和子目录,除了空的。
  /E           复制目录和子目录,包括空的。
               与 /S /E 相同。可以用来修改 /T。
  /V           验证每个新文件。
  /W           提示您在复制前按键。
  /C           即使有错误,也继续复制。
  /I           如果目标不存在,又在复制一个以上的文件,
               则假定目标一定是一个目录。
  /Q           复制时不显示文件名。
  /F           复制时显示完整的源和目标文件名。
  /L           显示要复制的文件。
  /G           允许将没有经过加密的文件复制到
               不支持加密的目标。
  /H           也复制隐藏和系统文件。
  /R           覆盖只读文件。
  /T           创建目录结构,但不复制文件。
               不包括空目录或子目录。/T /E 包括
               空目录和子目录。
  /U           只复制已经存在于目标中的文件。
  /K           复制属性。一般的 Xcopy 会重置只读属性。
  /N           用生成的短名复制。
  /O           复制文件所有权和 ACL 信息。
  /X           复制文件审核设置(隐含 /O)。
  /Y           复制文件审核设置(隐含 /O)。
               现存目标文件。
  /-Y          导致提示以确认改写一个
               现存目标文件。
  /Z            用重新启动模式复制网络文件。

命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。


DIR :显示目录中的文件和子目录列表。

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

[drive:][path][filename]
指定要列出的驱动器、目录和/或文件。

/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
停用分隔符显示。
/D 跟宽式相同,但文件是按栏分类列出的。
/L 用小写。
/N 新的长列表格式,其中文件名在最右边。
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/P 在每个信息屏幕后暂停。
/Q 显示文件所有者。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
/W 用宽列表格式。
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
/4 用四位数字显示年

可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。


DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]]
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes

  names         指定一个或数个文件或目录列表
                删除多个文件。如果指定了一个
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            从所有子目录删除指定文件。
  /Q            安静模式。删除全局通配符时,
  /A            根据属性选择要删除的文件。
  attributes    R  只读文件
                H  隐藏文件
                -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。


echo Manifest-Version: 1.0> MANIFEST.MF 新创建一个文件
echo Manifest-Version: 1.0>> MANIFEST.MF 向文件添加一条信息

SETLOCAL
开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后
所做的环境改动只限于批处理文件。要还原原先的设置,必须执
行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个
尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。

SETLOCAL

如果命令扩展被启用,SETLOCAL 会如下改变:

SETLOCAL 批命令现在可以接受可选参数:
        ENABLEEXTENSIONS / DISABLEEXTENSIONS
            启动或停用命令处理器扩展。详细信息,请参阅 CMD /?。
        ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
            启动或停用延缓环境变量扩展。详细信息,请
            参阅 SET /?。
无论在 SETLOCAL 命令之前它们的设置是什么,这些修改会一直
保留到匹配的 ENDLOCAL 命令。

如果有一个参数,SETLOCAL 命令将设置 ERRORLEVEL 的值。
如果有两个有效参数中的一个,该值则为零。用下列技巧,您
可以在批脚本中使用这个来决定扩展是否可用:

VERIFY OTHER 2>nul
















只以InputStream为例,讲讲IO读取的性能问题。
一般的硬件设备,或者网络,访问的速度都有可能存在一定的瓶颈。此外,建立连接的时间往往被我们忽略了。
特别是在J2ME所运行的受限平台上,这个连接的时间往往是不可忽略的。所以我们应该尽量减少连接次数,尽量一次交换更多的数据。

先看看示范代码吧:
while ((ch = inputStream.read()) != -1) {

}
以上是标准代码,曾让我疑惑过:
使用while循环,一个一个读,会不会效率很低?
于是我拿了一个30K的文件,跟下面的方法对比了一下。
byte[] data = new byte[inputStream.available()];
inputStream.read(data);
结果这两个方法的速度不相上下。

后来看了CLDC的源代码才发现,InputStream的read(byte[] data)等批量读取的方法都是在read()方法上加循环实现的。
原来是自己把自己耍了一回……

不过,能用批量读取的时候还是应该尽量用;万一某些平台,某些继承于InputStream的扩展类,用更高效的方法重载了批量读取方法呢?

此外,还有一点很重要,很多情况是无法调用InputStream.available()函数的。特别是网络连接。这样才能叫“流”嘛。
这就需要使用缓冲来解决了,下面提供一个我写的方法,没什么大不了的,用起来感觉还不错,今天兴奋了就介绍一下。


private static final int BUFFER_SIZE = 1024;

public static byte[] read(InputStream is) throws Exception {
  byte[] ret = null;
  if (is.available() > 0) {
   ret = new byte[is.available()];
   is.read(ret);
  } else {
   int rd;
   Vector temp = new Vector();
   int size = 0;
   while (true) {
    byte[] buffer = new byte[BUFFER_SIZE];
    rd = is.read(buffer, 0, BUFFER_SIZE);
    if (rd == BUFFER_SIZE) {
     temp.addElement(buffer);
     size += BUFFER_SIZE;
    } else {
     if (rd > 0) {
      size += rd;
     }
     int tsize = temp.size();
     ret = new byte[size];
     for (int i = 0; i < tsize; i++) {
      byte[] t = (byte[]) temp.elementAt(i);
      System.arraycopy(t, 0, ret, i * BUFFER_SIZE,
        BUFFER_SIZE);
     }
     if (rd > 0) {
      System.arraycopy(buffer, 0, ret, tsize * BUFFER_SIZE,
        rd);
     }
     break;
    }
   }
  }
  return ret;
}


这个方法使用了Vector,有些人可能觉得它影响效率。
其实不然,我测试过。
之所以使用这个有点变态的方法,是因为我向来比较抠,最讨厌遇到不能获取长度的Stream啦,定义多大的缓冲都怕不合适。
于是,就使用了这样一个爱死不死的方法。反正手机内存就那点,我也不去费心去选取buffer长度了,让它自己看着办。
分享到:
评论

相关推荐

    批处理文件编程指南

    call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key ...

    Spring.Batch批处理框架

    Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更...

    局域网共享批处理支持Win10 Win11

    全批处理,可自行查看源代码 支持Windows10 Windows11系统共享设置 操作过程:1、运行局域网共享一键修复2、输入数字“2”回车,开启“简单共享(无密码)”3、(打印机共享)如果只是共享打印机,那么继续按一次...

    ftp删文件批处理

    BAT 批处理脚本 教程 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令...

    Windows下批处理bat文件语法

    bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样...

    bat批处理脚本.docx

    批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分...

    图形批处理工具图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接

    图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接图形批处理工具,它可以将若干图片一次进行大小处理和剪裁直接图形批处理工具,它可以将...

    BAT批处理文件语法大全

    .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样...

    DOS批处理实例教程

    批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一...

    批处理:打开指定窗口大小及位置批处理Mr.ZH

    批处理:打开指定窗口大小及位置批处理Mr.ZH;批处理打开指定窗口大小;批处理打开指定窗口位置

    Windows 批处理调试器2.0

    工程管理,也就是管理批处理文件、断点、观察变量、初始环境变量、初始当前目录、批处理入口文件、 批处理文件命令行参数的信息。 支持用户自定义界面,使用标签多文档界面和停靠栏。 双击.bdc文件,会启动windows...

    批处理windows安全加固程序 一键安全加固系统

    此工具为bat批处理文件,里面是我收集总结的一套安全加固命令,集成windows系统的所有安全处理项,对于公司服务器,个人pc加固起到非常好的效果,只要双击运行,cmd可视界面,让你的电脑更加安全。更是学习系统安全...

    windows安全加固批处理程序 一键安全加固系统

    此工具为bat批处理文件,里面是我收集总结的一套安全加固命令,集成windows系统的所有安全处理项,对于公司服务器,个人pc加固起到非常好的效果,只要双击运行,cmd可视界面,让你的电脑更加安全。更是学习系统安全...

    经典批处理大全(几乎包含全部批处理命令)

    批处理命令大全,适用于各种层次的电脑爱好者

    批处理程序编程软件

    BatProject是一款批处理编辑软件,致力于为用户打造功能最强大、最简洁的批处理开发环境 1、高亮代码  可以实时高亮正在编辑的代码,无任何延迟 2、自动补全  输入时实时弹出下拉框显示相关信息(如输入...

    好用的万能批处理工具

    批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一...

    图像批处理图像批处理图像批处理

    图像批处理图像批处理图像批处理图像批处理图像批处理

    网管必备工具——万能批处理

    万能批处理.... 万能批处理工具包【电脑迷专版】 万能批处理工具包【电脑迷专版】 万能批处理工具包? cls @echo off title ◇让网管变得轻松吧◇【电脑迷专版】 :start cls color MODE con: COLS=79 LINES=25 ...

    经典批处理,系统优化,网路优化等批处理

    经典批处理,系统优化,网路优化等批处理.... 系统信息查询&修改 文件创建&改名等操作

    批处理改网关dns.bat

    批处理改网关

Global site tag (gtag.js) - Google Analytics