bat 如何:读取特定文本

ConnorWang2012 2013-12-03 04:35:53
Hi,dear all,

向大家问一个问题:在cmd中输入一个string和一个数值N和一个txt文档名称,怎么用bat做到--获取上面三个参数,若该txt文件中包含给定的string,则输出该string所在的行以及该string后面紧接着的N行(若该string后剩余行小于N则输出该string后的全部行)?

thanks~
...全文
1922 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ConnorWang2012 2013-12-03
  • 打赏
  • 举报
回复
Hi,ljc007,thanks~~ it work,原因是之前输入的str中含有转义字符,需要处理一下。 thanks~
ConnorWang2012 2013-12-03
  • 打赏
  • 举报
回复
引用 1 楼 ljc007 的回复:
test.bat
@echo off
set /p str=请输入字符串:
set /p n=请输入数值:
set /p file=请输入文档名称:
grep "%str%" -A %n% "%file%"
pause
下载grep.exe和上面的test.bat放在同一个目录下 http://code.google.com/p/gnu-on-windows/downloads/list 双击执行test.bat
hi,ljc007,好像并不可以正常工作 我的txt内容 :

SD\VID_90&OID_004A&PID_HBG4E&REV_8.2\3&7A47DD1&0&0
    Name: SD Storage Class Controller
    Driver is running.
ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_55_-_________INTEL(R)_ATOM(TM)_CPU__Z3740__@_1.33GHZ\_1
    Name: Intel(R) Atom(TM) CPU  Z3740  @ 1.33GHz
    Driver is running.
ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_55_-_________INTEL(R)_ATOM(TM)_CPU__Z3740__@_1.33GHZ\_2
    Name: Intel(R) Atom(TM) CPU  Z3740  @ 1.33GHz
    Driver is running.
ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_55_-_________INTEL(R)_ATOM(TM)_CPU__Z3740__@_1.33GHZ\_3
    Name: Intel(R) Atom(TM) CPU  Z3740  @ 1.33GHz
    Driver is running.
ACPI\GENUINEINTEL_-_X86_FAMILY_6_MODEL_55_-_________INTEL(R)_ATOM(TM)_CPU__Z3740__@_1.33GHZ\_4
    Name: Intel(R) Atom(TM) CPU  Z3740  @ 1.33GHz
    Driver is running.
ACPI\PNP0C02\1
    Name: Motherboard resources
    Device is currently stopped.
ACPI\PNP0C02\2
    Name: Motherboard resources
    Device is currently stopped.
ACPI\PNP0C0A\1
    Name: Microsoft ACPI-Compliant Control Method Battery
    Driver is running.
ACPI\PNP0B00\2&DABA3FF&2
    Name: System CMOS/real time clock
    Driver is running.
ACPI\ACPI000C\2&DABA3FF&2
    Name: ACPI Processor Aggregator
    Driver is running.
SWD\PRINTENUM\PRINTQUEUES
    Name: Root Print Queue
    Driver is running.
{30EBFBF8-DF5F-4D4D-9FC5-A26C7FD1DF4A}\GPIO_BUTTONS\3&18C083FF&0&0
    Name: Sideband GPIO Buttons Injection Device
    Driver is running.
HID\VID_0B05&PID_17E0&MI_01&COL01\7&198E5CFE&0&0000
    Name: HID-compliant consumer control device
    Driver is running.
ROOT\VOLMGR\0000
    Name: Volume Manager
    Driver is running.
SD\VID_02D0&PID_4324&FN_1\3&18BDEB84&0&0
    Name: Broadcom 802.11abgn Wireless SDIO Adapter
    Driver is running.
ACPI\MSFT0101\2&DABA3FF&2
    Name: Trusted Platform Module 2.0
    Driver is running.
HID\VID_046D&PID_C05B\7&1CD575E8&0&0000
    Name: HID-compliant mouse
    Driver is running.
ACPI\INT3400\2&DABA3FF&2
    Name: Intel(R) Dynamic Platform & Thermal Framework Driver
    Driver is running.
ACPI\INT0800\4&12046B42&0
    Name: Intel(R) 82802 Firmware Hub Device
    Device is currently stopped.
SD\DISK&HYNIX&HBG4E&8.2\4&65CBF74&0&07183832
    Name: Hynix HBG4e 
    Driver is running.
ROOT\BASICDISPLAY\0000
    Name: Microsoft Basic Display Driver
    Driver is running.
ACPI\80860F28\1
    Name: Intel SST Audio Device (WDM)
    Driver is running.
ACPI\PNP0C0E\2&DABA3FF&2
    Name: ACPI Sleep Button
    Driver is running.
PCI\VEN_8086&DEV_0F31&SUBSYS_14ED1043&REV_09\3&11583659&1&10
    Name: Intel(R) HD Graphics
    Driver is running.
DISPLAY\INT0F38\4&F65DC8C&0&UID134968
    Name: Intel(R) Imaging Signal Processor 2400
    Driver is running.
ACPI\THERMALZONE\TZ00
    Name: ACPI Thermal Zone
    Driver is running.
HID\INTCFD9&COL03\3&18C083FF&0&0002
    Name: HID-compliant system controller
    Driver is running.
USB\VID_0B05&PID_17E0&MI_02\6&1D8779C&0&0002
    Name: USB Input Device
    Driver is running.
ACPI\INVN6500\3&35F3E24A&0
    Name: InvenSense Sensor Collection
    Driver is running.
STORAGE\VOLUME\{37A6F21D-58FB-11E3-9716-806E6F6E6963}#0000000106500000
    Name: Generic volume
    Driver is running.
USB\VID_0B05&PID_17E0&MI_01\6&1D8779C&0&0001
    Name: USB Input Device
    Driver is running.
HID\VID_0B05&PID_17E0&MI_02&COL01\7&2CBE793C&0&0000
    Name: ASUS Touchpad
    Driver is running.
USB\VID_0B05&PID_17E0&MI_00\6&1D8779C&0&0000
    Name: USB Input Device
    Driver is running.
BCMBTBUS\BLUETOOTH\4&2AF0E20&0&4097
    Name: Bluetooth Radio
    Driver is running.
ACPI\PNP0103\0
    Name: High precision event timer
    Device is currently stopped.
USB\VID_0B05&PID_17E0\5&1AA2A8C5&0&3
    Name: USB Composite Device
    Driver is running.
ACPI\INT3396\1
    Name: Intel(R) Power Engine Plug-in
    Driver is running.
ACPI\PNP0100\4&12046B42&0
    Name: System timer
    Device is currently stopped.
ROOT\COMPOSITEBUS\0000
    Name: Composite Bus Enumerator
    Driver is running.
ROOT\VDRVROOT\0000
    Name: Microsoft Virtual Drive Enumerator
    Driver is running.
SWD\WPDBUSENUM\{37A6F21B-58FB-11E3-9716-806E6F6E6963}#0000000000100000
    Name: Data1
    Driver is running.
SWD\LWSENSORS\{AB3BECED-B98C-426B-ADBE-309F89C1CD2E}
    Name: Lightweight Sensors Root Enumerator
    Driver is running.
UEFI\RES_{B122A262-3551-4F48-8892-55F6C0614290}\0
    Name: System Firmware
    Driver is running.
ACPI\ACPI0003\2&DABA3FF&2
    Name: Microsoft AC Adapter
    Driver is running.
ROOT\SPACEPORT\0000
    Name: Microsoft Storage Spaces Controller
    Driver is running.
BTH\MS_BTHBRB\5&32F66B16&0&1
    Name: Microsoft Bluetooth Enumerator
    Driver is running.
HID\VID_0B05&PID_17E0&MI_01&COL02\7&198E5CFE&0&0001
    Name: HID-compliant system controller
    Driver is running.
PCI\VEN_8086&DEV_0F00&SUBSYS_14ED1043&REV_09\3&11583659&1&00
    Name: PCI standard host CPU bridge
    Driver is running.
ROOT\KDNIC\0000
    Name: Microsoft Kernel Debug Network Adapter
    Driver is running.
ACPI\PNP0C0D\2&DABA3FF&2
    Name: ACPI Lid
    Driver is running.
BTH\MS_RFCOMM\5&32F66B16&0&0
    Name: Bluetooth Device (RFCOMM Protocol TDI)
    Driver is running.
BTH\MS_BTHPAN\5&32F66B16&0&2
    Name: Bluetooth Device (Personal Area Network)
    Driver is running.
UEFI\RES_{28442815-3981-2336-1715-662259671897}\0
    Name: Device Firmware
    Driver is running.
STORAGE\VOLUME\{37A6F21D-58FB-11E3-9716-806E6F6E6963}#0000000132100000
    Name: Generic volume
    Driver is running.
HID\VID_0B05&PID_17E0&MI_02&COL02\7&2CBE793C&0&0001
    Name: HID-compliant vendor-defined device
    Driver is running.
STORAGE\VOLUME\{37A6F21B-58FB-11E3-9716-806E6F6E6963}#0000000000100000
    Name: Generic volume
    Driver is running.
ROOT\UMBUS\0000
    Name: UMBus Root Bus Enumerator
    Driver is running.
ROOT\ACPI_HAL\0000
    Name: ACPI x86-based PC
    Driver is running.
HID\VID_0B05&PID_17E0&MI_01&COL03\7&198E5CFE&0&0002
    Name: HID-compliant vendor-defined device
    Driver is running.
HID\ATML1000&COL01\4&20690797&0&0000
    Name: HID-compliant touch screen
    Driver is running.
ACPI\PNP0C14\ATK
    Name: Microsoft Windows Management Interface for ACPI
    Driver is running.
ACPI\80860F41\1
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\2
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\3
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\4
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\5
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\6
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\80860F41\7
    Name: Intel(R) Atom(TM) Processor I2C Controller
    Driver is running.
ACPI\PNP0A08\0
    Name: PCI Express Root Complex
    Driver is running.
HID\VID_0B05&PID_17E0&MI_00\7&65E40C0&0&0000
    Name: HID Keyboard Device
    Driver is running.
USB\VID_174C&PID_55AA\______TEA55D4N06ATLW
    Name: USB Mass Storage Device
    Driver is running.
ACPI\INT0002\1
    Name: Intel(R) Atom(TM) Processor GpioVirtual Controller
    Driver is running.
ACPI_HAL\PNP0C08\0
    Name: Microsoft ACPI-Compliant System
    Driver is running.
HTREE\ROOT\0
    Driver is running.
ROOT\BASICRENDER\0000
    Name: Microsoft Basic Render Driver
    Driver is running.
ACPI_HAL\UEFI\0
    Name: Microsoft UEFI-Compliant System
    Driver is running.
USB\ROOT_HUB30\4&3240B260&0&0
    Name: USB Root Hub (xHCI)
    Driver is running.
{5D624F94-8850-40C3-A3FA-A4FD2080BAF3}\VWIFIMP_WFD\4&36F4CF7&0&01
    Name: Microsoft Wi-Fi Direct Virtual Adapter
    Driver is running.
ACPI\INTL9C60\1
    Name: Intel(R) Serial IO DMA Controller
    Driver is running.
ACPI\PNP0C02\13
    Name: Motherboard resources
    Device is currently stopped.
PCI\VEN_8086&DEV_0F1C&SUBSYS_14ED1043&REV_09\3&11583659&1&F8
    Name: PCI standard ISA bridge
    Driver is running.
USB\VID_046D&PID_C05B\6&F02023D&0&1
    Name: USB Input Device
    Driver is running.
PCI\VEN_8086&DEV_0F35&SUBSYS_14ED1043&REV_09\3&11583659&1&A0
    Name: Intel(R) USB 3.0 eXtensible Host Controller - 0100 (Microsoft)
    Driver is running.
ACPI\ATK4001\2&DABA3FF&2
    Name: ASUS Wireless Radio Control
    Driver is running.
HID\ATML1000&COL02\4&20690797&0&0001
    Name: HID-compliant vendor-defined device
    Driver is running.
ACPI\PNP0000\4&12046B42&0
    Name: Programmable interrupt controller
    Device is currently stopped.
UEFI\RES_{5A1C0D8B-8BB8-4A4F-BCC6-AC570D543294}\0
    Name: Device Firmware
    Driver is running.
ACPI\ATML1000\3&233A31A5&0
    Name: I2C HID Device
    Driver is running.
USB\VID_174C&PID_2074\5&1AA2A8C5&0&4
    Name: Generic USB Hub
    Driver is running.
PCI\VEN_8086&DEV_0F18&SUBSYS_14ED1043&REV_09\3&11583659&1&D0
    Name: Intel(R) Trusted Execution Engine Interface 
    Driver is running.

输入字串 :

USB\VID_174C&PID_55AA
输入N是3 发现没有输出, 我以为grep.exe只匹配整行,但输入整行后也发现没有输出, 实际上该字串是包含在上述文档中的~~ 其实我是想全用bat完成的,但对bat不熟~~
ConnorWang2012 2013-12-03
  • 打赏
  • 举报
回复
引用 1 楼 ljc007 的回复:
test.bat
@echo off
set /p str=请输入字符串:
set /p n=请输入数值:
set /p file=请输入文档名称:
grep "%str%" -A %n% "%file%"
pause
下载grep.exe和上面的test.bat放在同一个目录下 http://code.google.com/p/gnu-on-windows/downloads/list 双击执行test.bat
hi,ljc007,我还没按你说的执行,我想问一下,grep.exe是自己写的还是windows自带的工具? 另外,前面说的bat要求在WinPE下也可以执行,不知道grep.exe是用什么语言写的~~
ljc007 2013-12-03
  • 打赏
  • 举报
回复
test.bat
@echo off
set /p str=请输入字符串:
set /p n=请输入数值:
set /p file=请输入文档名称:
grep "%str%" -A %n% "%file%"
pause
下载grep.exe和上面的test.bat放在同一个目录下 http://code.google.com/p/gnu-on-windows/downloads/list 双击执行test.bat

18,124

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧