中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » NSET使用说明--DOS下进行字符处理的利器(求汉化)
作者:
标题: NSET使用说明--DOS下进行字符处理的利器(求汉化) 上一主题 | 下一主题
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『楼 主』:  NSET使用说明--DOS下进行字符处理的利器(求汉化)

点击下载
下面是nset命令的说明:
------------------------------------------------------------------------
NSET    Extract from STDIN              Ver 2.1 (c) 1997 Horst Schaeffer
------------------------------------------------------------------------
          Note: Setting variable is not supported under Win NT/2000/XP
                See work-around described in NSET.W2K

NSET picks a word, line or substring from STDIN and assigns it to an
environment variable (or sends it to STDOUT). Useful if you want to
extract data from DOS output of DIR, DATE, TIME, FIND etc. - but you'll
probably find lots of other applications...

Syntax:       NSET [options] [varname]=string
              -------------------------------

options:      /S /X /U /L /P (see below)

varname:      name of environment variable
              if the name is omitted, the result is sent to STDOUT

string:       is usually a token $1...$99 for the n-th word of STDIN,
              or $0 for a complete line.
              But you can use any text string with one or more embedded
              tokens to form the resulting string.

Using STDIN, examples:

by PIPE:      CD | NSET SDIR=$1         (SDIR=current directory)

from a file:  NSET X=$3 < some.txt      (X=3rd word from some.txt)

keyboard:     NSET IN=$0                (IN=input up to CR)

Tokens $1..$99  refer to "words" from STDIN, defined by the following
standard separators:

              blank space
              comma
              semicolon
              equal sign
              carriage return
              line feed

For other separators or substrings see options.

If the input has several lines, just count the words across lines
(unless option /L is used to restrict extraction to a specific line).

Trailing spaces are always removed. Keyboard input is limited to one
line, terminated by ENTER (Ctrl"Z" not required).

Options
-------
/S  additional separators (max: 24), terminated by a blank space (!)
    As an example, you can split up the current date to translate
    UK (with slashes) to US format (day and month swapped):

    echo.|date|NSET /S/ USdate=$6-$5-$7
                    ^^^
    UK date output:   Current Date is  Mon, 15/07/1996
    tokens:             $1     $2  $3  $4   $5 $6  $7
                                            ^^^^^^^^^^
/X  instead of /S:
    same as /S, however, standard separators are only: space, CR and LF.
    Comma, semicolon or equal sign have to be specified if required.
    (This allows exclusion of comma marks in numbers, for example).

    Option /X can be used without additional separators, but in any
    case a blank space must succeed to indicate the end of option /X.

/U  convert input words to upper case

/L  extract from specified line (line numbers: 1..9999)
    Tokens refer to words within this line only.
    Example: to get the directory path of a given file %fn%
    only the 4th line of the DIR output is used:

        DIR %fn% | NSET /L4 FPATH=$3
                         ^^
    Special feature:
/L? (question mark instead of a number) selects a random line.

/P  position (1 is leftmost), size (default: rest of line)
    This option will cut out a substring from a line. Tokens refer to
    words within this substring, $0 is the complete substring.
    In the following example 10 bytes are taken from pos.3 in line 5:

        NSET /P3,10 /L5 X=$0
              ^^^^^
    Get 2nd word from the rest of 1st line, starting at position 14:

        NSET /P14 X=$2

With token $0 the complete line (or substring) is taken regardless of
any separators. Leading spaces are not removed in this case.
Use with option /L unless you want line #1 (or there is only one).


STDOUT instead of variable
--------------------------
If you omit the variable name, the result will be sent to STDOUT.
Note that the equal sign must not be omitted!
Useful for testing or for redirection to a file.

Example:
        NSET /L? =$0  < taglines.lst > tagline.now

Notes:
------
Max input size is about 60 KB (rest ignored)

Errorlevel: 0: ok, 1: out of environment space or invalid options

To avoid conflicts when numeric data occur in the command string,
you may use e.g. $01 instead of $1 (because max 2 digits are read for
tokens):
        $15         is the 15th word
        $015        is the 1st word succeeded by constant "5"


More Examples:
--------------
    dir %file% /B | NSET /S. FN=$1      (file name without extension)
    dir %file% /B | NSET /S. EXT=$2     (file extension only)
    vol | NSET DRV=$4:                  (current drive)
    echo %string%| NSET /U string=$0    (convert string to upper case)
    echo %string%| NSET /P2,1 char=$1   (get 2nd char from string)

To save and restore drive and directory in a BAT file:

    CD | NSET XDIR=$1                   (save full path in XDIR)
    -----------------
    %XDIR%\                             (select drive *)
    CD %XDIR%                           (select directory)

    *) undocumented DOS feature: with trailing backslash the drive is
       selected (rest ignored). Does not work under NT/2000/XP.

----
NSET is freeware by Horst Schaeffer - no warranties of any kind
eMail: horst.schaeffer@gmx.net

= 04 AUG 2002
谁能帮忙翻译一下,我想对大家在bat文件里处理字符串是有不少好处的!

[ Last edited by 不得不爱 on 2008-12-30 at 09:52 ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 BC 分数: +4  时间:2008-12-28 09:55




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2008-12-26 16:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 2 楼』:  

汉化后的结果:
------------------------------------------------------------------------
NSET    Extract from STDIN              Ver 2.1 (c) 1997 Horst Schaeffer
------------------------------------------------------------------------
          Note: Setting variable is not supported under Win NT/2000/XP
                See work-around described in NSET.W2K
注:在Win NT/2000/XP下,不支持设置变量。看NSET.W2K中的相关描述。

NSET picks a word, line or substring from STDIN and assigns it to an
environment variable (or sends it to STDOUT). Useful if you want to
extract data from DOS output of DIR, DATE, TIME, FIND etc. - but you'll
probably find lots of other applications...
NSET从STDIN选择一个字,一行或者子字符串,赋给一个环境变量(或者输出到STDOUT)。如果你想从DOS的DIR、DATE、TIME、FIND等命令输出中取得数据,这是有用的。而你也可能发现很多其他的应用。

语法          NSET【选项】   【变量名】=字符串
Syntax:       NSET [options] [varname]=string
              -------------------------------
选项                         (看下面)
options:      /S /X /U /L /P (see below)

变量名         环境变量名
varname:      name of environment variable
              if the name is omitted, the result is sent to STDOUT
              如果省略了变量名,输出结果被发送到STDOUT

字符串         这个字符串通常是一个标志,标志$1到$99的N项字输出,或者$0的一整行。
               但你可以使用带一个或者多个嵌入式标志的任意字符串,生成结果字符串
string:       is usually a token $1...$99 for the n-th word of STDIN,
              or $0 for a complete line.
              But you can use any text string with one or more embedded
              tokens to form the resulting string.

使用STDIN的例子:
Using STDIN, examples:

通过PIPE:    CD| NSET SDIR=$1         (SDIR=current directory,当前目录)
by PIPE:      CD | NSET SDIR=$1         (SDIR=current directory,当前目录)

从一个文件:  NSET X=$3 < some.txt      (X=3rd word from some.txt,some.txt中第三个字)
from a file:  NSET X=$3 < some.txt      (X=3rd word from some.txt)

键盘:        NSET IN=$0                (IN=input up to CR,按下UP)                              
keyboard:     NSET IN=$0                (IN=input up to CR)

标志$1到$99指的是由下列标准分隔符定义的、来自STDIN的字:
Tokens $1..$99  refer to "words" from STDIN, defined by the following
standard separators:

              blank space(空格)
              comma(逗号)
              semicolon
              equal sign(等号)
              carriage return(回车)
              line feed(换行)
其它的分隔符或者子串看选项。
For other separators or substrings see options.
如果有几行输入,只需要计算字数(除非使用了选项/L来限制一个特别的行)
If the input has several lines, just count the words across lines
(unless option /L is used to restrict extraction to a specific line).

尾随空格总是被移除。键盘输入被限制为一行,使用ENTER结束(无需Ctrl“Z”)。
Trailing spaces are always removed. Keyboard input is limited to one
line, terminated by ENTER (Ctrl"Z" not required).

选项
Options
-------
    附加分隔符(最大:24),使用空格结束(!)。例如,你可以使用/符号分割当前日期的英国格式,
    也可以转为美国格式(日和月交换位置):
/S  additional separators (max: 24), terminated by a blank space (!)
    As an example, you can split up the current date to translate
    UK (with slashes) to US format (day and month swapped):

    echo.|date|NSET /S/ USdate=$6-$5-$7
   
    英国日期输出:   当前日期是1996年7月15日,星期一
                              ^^^
    UK date output:   Current Date is  Mon, 15/07/1996
    tokens:             $1     $2  $3  $4   $5 $6  $7
                                            ^^^^^^^^^^
/X  instead of /S:
    如同/S,/X的标准空格符仅是空格,回车和换行。如果使用逗号、分号或者等号,要明确指明。
    (这总是不包括数字中使用的逗号)
    same as /S, however, standard separators are only: space, CR and LF.
    Comma, semicolon or equal sign have to be specified if required.
    (This allows exclusion of comma marks in numbers, for example).
   
    /X选项在不使用附加分隔符时,也可以使用。但必须使用空格来指明/X选项的结束。
    Option /X can be used without additional separators, but in any
    case a blank space must succeed to indicate the end of option /X.

    将输入字转为大写。
/U  convert input words to upper case

    从指定行号(行号:1至9999)找出。标志指明仅这一行内的字。
    例如:获取一个给定文件 %fn%的目录路径,仅使用DIR命令输出的第四行:
/L  extract from specified line (line numbers: 1..9999)
    Tokens refer to words within this line only.
    Example: to get the directory path of a given file %fn%
    only the 4th line of the DIR output is used:

        DIR %fn% | NSET /L4 FPATH=$3
     
    特征:                    ^^
    Special feature:
    (使用问号)选择一个随机行
/L? (question mark instead of a number) selects a random line.
    位置(最左是1),大小(默认:行的剩余部分)
    这个选项从一行中分割一个子串。在这个子串的字中,$0是完整的字串。
    下面的例子中,在第五行的位置3开始,取得10个字节:
/P  position (1 is leftmost), size (default: rest of line)
    This option will cut out a substring from a line. Tokens refer to
    words within this substring, $0 is the complete substring.
    In the following example 10 bytes are taken from pos.3 in line 5:

        NSET /P3,10 /L5 X=$0
              ^^^^^
    从第一行的剩余部分,在位置14的地方开始,取得第二个字:
    Get 2nd word from the rest of 1st line, starting at position 14:

        NSET /P14 X=$2
使用标志$0,就可以idedao一个完整的行(或者子串),而不管其他任何的分隔符。
在这种情况下,不移除前导空格。除非你想要第一行(这是仅有的情况),否则使用选项/L
With token $0 the complete line (or substring) is taken regardless of
any separators. Leading spaces are not removed in this case.
Use with option /L unless you want line #1 (or there is only one).

STDOUT,而不是变量
STDOUT instead of variable
--------------------------
如果你忽略变量名,结果将送到STDOUT。注意:不能忽略等号!用于测试或者改变文件路径。
If you omit the variable name, the result will be sent to STDOUT.
Note that the equal sign must not be omitted!
Useful for testing or for redirection to a file.

例子
Example:
        NSET /L? =$0  < taglines.lst > tagline.now

注意:
Notes:
------
最大输出尺寸的60KB(多余的忽略)
Max input size is about 60 KB (rest ignored)

错误返回码:0:正确;1:输出一个空格或者无效选项
Errorlevel: 0: ok, 1: out of environment space or invalid options

为了避免数字数据出现在命令字串中的冲突,你可以使用例如$01代替$1,因为标志的读取,最大读2位。
To avoid conflicts when numeric data occur in the command string,
you may use e.g. $01 instead of $1 (because max 2 digits are read for
tokens):
        $15         第十五个字
        $015        第一个字,跟着常量“5”
        $15         is the 15th word
        $015        is the 1st word succeeded by constant "5"

更多例子:
More Examples:
--------------
    dir %file% /B | NSET /S. FN=$1      (file name without extension)(不带扩展名的文件名)
    dir %file% /B | NSET /S. EXT=$2     (file extension only)(仅有扩展名)
    vol | NSET DRV=$4:                  (current drive)(当前盘)
    echo %string%| NSET /U string=$0    (convert string to upper case)(转换大写)
    echo %string%| NSET /P2,1 char=$1   (get 2nd char from string)(从字串取得第二个字符)

在一个bat文件保存和恢复盘和目录
To save and restore drive and directory in a BAT file:

    CD | NSET XDIR=$1                   (save full path in XDIR)(在XDIR中保存全路径)
    -----------------
    %XDIR%\                             (select drive *)(选择盘*)
    CD %XDIR%                           (select directory)(选择目录)
   
    未公开的DOS特性:驱动器被选上时,尾随单引号(其余的忽略)。在NT/2000/XP下无效。
    *) undocumented DOS feature: with trailing backslash the drive is
       selected (rest ignored). Does not work under NT/2000/XP.

NSET 是Horst Schaeffer提供的免费软件,任何情况下免责。
eMail: horst.schaeffer@gmx.net
----
NSET is freeware by Horst Schaeffer - no warranties of any kind
eMail: horst.schaeffer@gmx.net

2002年8月4号
= 04 AUG 2002




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2009-6-22 23:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
imur02
初级用户





积分 35
发帖 12
注册 2009-2-10
状态 离线
『第 3 楼』:  

我当年e文是最差的了
勉强过4级

哪位大侠来指正指正,学习一下

2009-6-23 12:16
查看资料  发送邮件  发短消息 网志  OICQ (1262097800)  编辑帖子  回复  引用回复
qqqrun3
初级用户





积分 59
发帖 28
注册 2010-11-5
状态 离线
『第 4 楼』:  

太强了,太美了,值得称赞

2010-11-10 18:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: