`
buerkai
  • 浏览: 169566 次
  • 性别: 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长度了,让它自己看着办。
分享到:
评论

相关推荐

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

    批处理是一种在Windows操作系统中广泛使用的自动化工具,它允许用户编写一系列命令,形成一个批处理文件(.bat或.cmd扩展名),然后一次性执行这些命令,极大地提高了工作效率。本压缩包“经典批处理大全”显然是一...

    BAT批处理脚本-提示窗口进度条-批处理弹窗提示.zip

    在IT行业中,批处理脚本是一种非常实用的自动化工具,特别是在Windows系统环境下。"BAT"是批处理文件的扩展名,这些文件包含了可执行的DOS命令序列,用于执行一系列操作,无需用户交互。本资源"BAT批处理脚本-提示...

    批处理文件编程指南

    批处理文件编程是一种在DOS或Windows环境下使用命令行脚本执行一系列操作的方法。它主要依赖于几个核心命令,如`echo`、`@`、`call`、`pause`和`rem`,以及更高级的`if`、`goto`、`choice`和`for`等。 1. `echo`: ...

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

    批处理是一种在计算机科学中广泛使用的自动化技术,它允许用户预先编写一系列命令,然后一次性执行这些命令,而无需逐个手动输入。在这个压缩包中,我们聚焦于"经典批处理",这通常涉及到Windows操作系统中的批处理...

    打印机错误解决批处理

    本文将深入探讨“打印机错误解决批处理”的概念,以及如何利用批处理脚本来解决打印机故障。 首先,我们需要了解打印机错误的类型。打印机错误可能源自硬件故障、驱动程序问题、打印队列堵塞或网络连接问题。常见的...

    dos批处理命令大全

    "dos批处理命令大全" dos批处理命令是dos操作系统中的一种批处理语言,用于自动执行一系列命令。以下是dos批处理命令的详细解释和示例: 1. Echo 命令 Echo 命令用于打开回显或关闭请求回显功能,或显示消息。...

    可视化批处理编辑器与实例

    可视化批处理编辑器是一种强大的工具,它允许用户通过图形用户界面(GUI)创建、编辑和管理批处理脚本,而不是传统的命令行方式。这样的编辑器通常具有友好的拖放功能和预览机制,使得编写批处理命令变得直观且易于...

    手机批处理(在手机上运行的批处理软件)

    手机批处理,是一种在移动设备上实现自动化任务执行的技术,主要通过特定的软件来实现。在PC端,批处理通常指的是使用批处理脚本(如Windows的.bat或Linux的.sh文件),而在手机平台上,这样的功能可能由第三方应用...

    批处理文件启动Oracle服务

    批处理文件,又称为批处理脚本,是一种在Windows操作系统中批量执行命令的方法,能够极大地提高工作效率,尤其在需要重复执行相同或类似任务时。 在Oracle环境中,服务通常包括监听器(Listener)和服务(Service)...

    BAT批处理脚本-加密解密-解密.zip

    在IT行业中,批处理脚本是一种非常实用的自动化工具,特别是在Windows系统中,BAT脚本的应用广泛且功能强大。本文将深入探讨“BAT批处理脚本-加密解密-解密.zip”这一主题,以及如何利用它进行文件的加密与解密。 ...

    批处理阶段教程奥运最终版[英雄出品

    批处理阶段教程奥运最终版是由“英雄”出品的一份针对批处理技术的详细教程,适合零基础的学习者。批处理,又称批处理命令,是一种在计算机操作系统中预先编写好一系列命令,然后一次性执行这些命令的技术。它允许...

    自动批量拨号批处理.rar

    标题“自动批量拨号批处理.rar”所涉及的知识点主要集中在使用批处理脚本来实现自动化的宽带拨号连接。批处理是一种在Windows操作系统中执行一系列命令的文本文件,通常以.bat或.cmd为扩展名。在这个特定的例子中,...

    自动登录你的163邮箱 批处理

    在Windows操作系统中,批处理(Batch File)是一种简单的脚本语言,它允许用户通过命令行界面执行一系列连续的操作。 批处理脚本通常由一系列DOS命令组成,比如`net send`、`copy`、`del`等,这些命令可以自动化...

    批处理,超级好玩的批处理

    批处理(Batch Processing)是一种在计算机系统中批量处理任务的技术,尤其在早期的计算机系统中广泛应用。它允许用户一次性提交多个命令或者程序,系统会按照预定的顺序执行这些任务,而无需人工持续干预。在现代...

    Win11一键生成WinPE的批处理

    标题中的“Win11一键生成WinPE的批处理”指的是创建一个Windows预安装环境(Windows Preinstallation Environment,简称WinPE)的自动化过程,利用批处理脚本来简化操作。批处理是一种在DOS或Windows系统中运行一...

    BAT批处理脚本-访问共享.zip

    标题中的“BAT批处理脚本-访问共享.zip”指出这是一个关于使用批处理脚本来操作网络共享资源的主题。批处理脚本是基于Microsoft Windows操作系统的一种自动化工具,它允许用户通过编写一系列命令来执行一系列操作,...

    批处理文件夹权限修改

    批处理文件夹权限修改是一种高效的操作方式,尤其适用于管理大量文件夹访问权限的场景,例如在服务器维护中。本文将详细介绍批处理技术以及如何利用它来修改文件夹权限。 批处理(Batch Processing)是Microsoft ...

    批处理学习和批处理实例

    批处理是一种在Windows操作系统中广泛使用的自动化脚本技术,它允许用户通过编写一系列命令来执行多个操作,从而简化复杂的任务管理。批处理文件通常以`.cmd`或`.bat`为扩展名,这两种格式在功能上基本相同,都是...

    批处理批量文件改名

    在IT行业中,批处理批量文件改名是一种常见的文件管理任务,尤其对于处理大量文件时非常高效。批处理(Batch Processing)是计算机系统中的一种处理方式,它允许用户一次性提交多个命令或任务,由系统自动执行,无需...

    win10批处理自动关机、定时关机_win10_脚本_批处理_定时关机_自动关机_

    在Windows 10操作系统中,批处理(Batch)是一种简单而强大的工具,它允许用户通过编写脚本来自动化一系列命令执行。在这个场景中,"win10批处理自动关机、定时关机_win10_脚本_批处理_定时关机_自动关机_" 提供了三...

Global site tag (gtag.js) - Google Analytics