`

WindowsBatch与LinuxShell比较[batch常见命令和字符串查找命令find/findstr]

 
阅读更多

 

 

一 常见命令
1) at 11:00/interactive "c:\hero\hero.exe"
表示在11:00运行c:\hero\hero.exe,其中interactive是参数,表示允许作业在运行时与当时登录的用户桌面
进行交互。

2) 显示或更改文件属性。(也可以更改文件夹的属性)
例 attrib d:\hero.txt
显示d:\hero.txt的属性。
例 attrib d:\hero.txt +h +s +r
为d:\hero.txt添加隐藏、系统、只读的属性。
例 attrib d:\hero.txt -h -s -r
为d:\hero.txt去掉隐藏、系统、只读的属性。

3)显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/O[[:]sortorder]] [/S]
/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀

/S 显示指定目录和所有子目录中的文件。

dir命令参数较多,在此仅列出几个以供学习使用。
例一、
@echo off
dir /b
pause
只列出当前目录下的文件名和子目录名。(如果没有“/b”参数,将会显示一些额外的信息。)
例二、
@echo off
dir /s
pause
不仅列出当前目录下的文件名和子目录名,还列出子目录中的文件及子目录名。
例三、
@echo off
dir /ah
pause
列出当前目录下隐藏文件的文件名。
例四、
@echo off
dir /os
pause

按照文件的大小顺序显示当前目录下的文件。

 

4)注册组件
/u 解除注册
/s 无声,不显示消息框

例:regsvr32 /s hero.dll

5) 显示日期。
如果加上“/t”参数则只显示日期,而不用输入新日期。
显示时间。
如果加上“/t”参数则只显示时间,而不用输入新时间。

6)用于将路径虚拟成磁盘
例 subst X: c:\hero
将c:\hero虚拟成x盘。
例 subst X: /d
删除虚拟磁盘X。
这个命令有时可以代替虚拟光驱。
注:系统重启后虚拟的磁盘将消失。

7) tree以图形显示驱动器或路径的文件夹结构。

二 字符串查找命令

1)在文件中搜索字符串。

FIND "指定要搜索的文字串" 指定要搜索的文件
例:
@echo off
find "hero" hero.txt >nul
if errorlevel 1 echo 没找到!
if errorlevel 0 echo 找到了!

pause

 

2) 在文件中寻找字符串。

FINDSTR [/S] [/I] [/N] [/M] [/C:string] strings [[drive:][path]filename[ ...]]
/S 在当前目录和所有子目录中搜索匹配文件。
/I 指定搜索不分大小写。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/C:string 使用指定字符串作为文字搜索字符串。
strings 要查找的文字。
[drive:][path]filename
指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 表示在文件 x.y 中寻找 "hello" 或
"there" 。 'FINDSTR /C:"hello there" x.y' 表示在文件 x.y中寻找
"hello there"。

findstr正则表达式的基本用法:
1.findstr . hero.txt 或 Findstr "." hero.txt
在文件hero.txt中查找任意字符,不包括空行。

2.findstr .* hero.txt 或 findstr ".*" hero.txt
从文件hero.txt中查找任意字符包括空行。

3.findstr "[0-9]" hero.txt
从文件hero.txt中查找包括数字0~9的行。

4.findstr "[a-zA-Z]" hero.txt
从文件hero.txt中查找包括任意字符的行。

5.findstr "[dhyz]" hero.txt
从文件hero.txt中查找包括d h y z字母的行。

6.findstr "[a-hl-z]" hero.txt
从文件hero.txt中查找小写字符a-h l-z的字符串,但不包含I j k这几个字母。

7.findstr "h[aeg][jri]o" hero.txt
从文件hero.txt中可以匹配hejo,hajo,hgio,hero等…。

8. ^和$符号的应用
^ 表示行首匹配,"^hero"仅匹配 "heroisme"中的第一个单词。
$ 表示行尾匹配,"hero$"仅匹配 "iamthehero"中最后一个单词。

9.finstr "[^0-9]" hero.txt
如果是纯数字的字符串或者行便过滤掉,例如123321235545这样的字符串,如果是dafsd4555232fd这样的形式就不可以了。

10.findstr "[^a-z]" hero.txt
同上,如果是纯字母的字符串或者行便过滤掉,例如sgfgsdfgdf这样的字符,如果是dasfdsf454f这样的形式,掺杂着数字就不可以了。

11.*号的作用
前面已经说过了 ".*"表示搜索的条件是任意字符,*号在正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数,*号表示重复的次数为零次或者多次。

12.findstr "^[0-9]*$" hero.txt
这个是匹配找到的纯数字,例如314531454,如果是53234523hh234就被过滤掉了。
Findstr "^[a-z]*$" hero.txt
这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是34fdaf454fdad就被过滤掉了如果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符。

13. "\<…\>"这个表达式的作用
这个表示精确查找一个字符串,\< 表示字的开始位置,\>表示字的结束位置
echo hello world hero|findstr "\<hero\>"这样的形式
echo hello worldhero|findstr "\<hero\>" 这样的形式就不成了,他要找的是 "computer"这个字符串,所以不可以。

echo hello worldhero|findstr ".*hero\>"这样就可以匹配了。

完!

感谢,Thanks!

作者:iTech
出处:http://itech.cnblogs.com/

分享到:
评论

相关推荐

    字符串查找替换(批量任何文件)

    2. 命令行工具:在命令行环境中,如Windows的cmd或Linux的bash,可以使用grep命令进行查找,sed命令进行替换,结合find命令实现批量操作。 3. 编程语言:通过编程语言(如Python、Java、C#)编写脚本,利用文件读写...

    bat文件 字符串提取&替换等操作

    `FIND`命令用于查找文本文件中包含特定字符串的行,而`FINDSTR`则提供了更高级的功能,如正则表达式支持。 - `FIND`命令基本语法:`find "search_string" file_name` - `FINDSTR`命令基本语法:`findstr /R ...

    linux Shell 开发常用脚本命令详解

    Linux Shell 是一种强大的命令行接口,它允许用户与操作系统进行交互,执行自动化任务,以及编写脚本来管理系统。在软件开发领域,尤其是对于大数据程序员和运维人员来说,掌握Shell脚本编写是必不可少的技能。以下...

    BAT批处理脚本-求字符串长度.zip

    `echo`命令用于打印字符串,而`findstr`则是一个强大的字符串搜索和替换命令,它支持正则表达式,并可以用来计算字符串的长度。 下面详细讲解如何使用这两个命令: 1. **`echo`命令**:`echo`命令用于在命令行中...

    替换文件中指定字符串_批处理工具

    这个工具可能包含一个脚本,该脚本遍历指定目录下的所有文件,查找并替换用户指定的旧字符串为新字符串。这种功能在文本编辑、代码维护、数据处理等场景下非常实用。例如,开发者可能需要在大量源代码文件中统一修改...

    shell脚本语言.pdf

    * Shell printf 命令是指在 Shell 中格式化输出字符串的命令 * Shell printf 命令可以使用格式字符串来实现格式化输出 Shell if else 语句: * Shell if else 语句是指在 Shell 中的条件语句 * Shell if else ...

    windows下shell语言.pdf

    Windows 下Shell语言,通常指的是Windows环境下使用的命令行脚本语言,这类脚本语言中最为著名的便是批处理脚本(Batch file scripting)和Windows PowerShell。批处理脚本主要使用命令提示符(CMD)来执行,而...

    redhat Linux命令大全

    - **wc**: 统计文件中的行数、单词数和字符数。 - **split**: 将大文件分割成小文件。 - **paste**: 合并多个文件的列。 - **join**: 将两个文件的行根据指定列进行合并。 - **grep**: 在文件中搜索匹配的行。 - **...

    批处理命令在WINDOWS操作中的典型应用

    例如,使用`dir`列出目录内容,`find`查找特定字符串等。 通过以上这些批处理命令的组合,用户可以构建出复杂的工作流程,实现自动化任务,如文件备份、系统维护、软件安装等。批处理命令是Windows系统中不可或缺的...

    BAT批处理脚本-字符串.zip

    4. **FIND** 和 **FINDSTR**:在文件中查找字符串。`find "keyword" file.txt`将搜索文件"file.txt"中包含"keyword"的行,而`findstr /R /C:"pattern" file.txt`允许使用正则表达式查找更复杂的模式。 5. **FOR**:...

    Windows Batch

    - 虽然Shell、菜单和Windows等界面简化了命令输入过程,但其内部机制往往更加复杂。 - 用户必须依赖于系统提供的应用程序列表,无法随意执行自定义命令。 #### 三、批处理处理器 1. **基础概念**:批处理处理器...

    windows批处理命令使用详解[文].pdf

    Start 命令用于调用外部程序,所有的 DOS 命令和命令行程序都可以由 Start 命令来调用。语法为 `start [parameters]`。例如,`start notepad.exe` 可以调用 Notepad 程序。 八、Choice 命令 Choice 命令用于让用户...

    Windows Shell 编程指南与实例

    Windows Shell编程的基础在于了解批处理(Batch)脚本和Windows Script Host (WSH)。批处理脚本是包含一系列命令的文本文件,可以一次性执行这些命令,常用于系统维护和自动化任务。WSH是微软提供的一个运行环境,支持...

    LINUX常用命令介绍

    `apropos`是一个搜索工具,用于在用户手册页中查找与关键词相关的命令和描述。例如,输入`apropos keyword`可以查找与keyword相关的命令信息。它与`whatis`和`man`命令配合使用,帮助用户快速找到所需命令。 5. **...

    java 文本字符串替换工具

    在Java编程语言中,文本字符串替换是一个常见的任务,特别是在处理大量文本数据时。这个"java 文本字符串替换工具"很可能是为了帮助开发者高效地搜索和替换文件中的特定文本内容。让我们详细了解一下如何在Java中...

    linuxShell脚本编写实验7报告.pdf

    本实验报告旨在通过 Shell 脚本编写实验,掌握基本的 Linux 系统应用与开发技术,包括 Shell 脚本编写的基本知识、变量的使用、命令行参数的引用、for 循环、while 循环、read 命令的使用,以及命令扩展功能的使用。...

    常用linux命令及服务器配置大全 工作中收集的linux常用命令。

    ### 常用 Linux 命令及服务器配置详解 #### 一、acctcom:搜索并显示进程记帐文件 **用途**:`acctcom` 命令用于搜索并显示进程记账文件中的信息。这有助于系统管理员监控系统的使用情况。 **示例**: ```bash ...

    linux shell学习

    - 作为与 Unix/Linux 交互的主要手段之一,Shell 允许用户执行命令、管理文件和目录以及自动化任务。 - Shell 脚本可以简化复杂的任务,并允许重复执行相同的操作。 #### 二、Shell 的历史与特点 - **历史**:...

    linux 所有命令的集合

    ### Linux命令集合详解 #### ac -- 输出用户连接时间 ...以上列举了 Linux 中常见的命令及其基本功能,这些命令是 Linux 系统管理和日常使用的基础。熟悉这些命令有助于更好地掌握 Linux 操作系统。

Global site tag (gtag.js) - Google Analytics