[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理命令findstr怎样搜索指定文件匹配开头和结尾?

本帖最后由 freesoft00 于 2015-10-24 12:59 编辑

dir /b |findstr /i "\<win 7z\>"
我的本意是想搜索目录中所有win开头,7z结尾的文件

另外一个是比如文件内容如下
Microsoft Visual C++ 2005 Redistributable (x64)
Microsoft Visual C++ 2012 x86 Minimum Runtime
我要搜索Microsoft 开头,(x64) 结尾,这个应该如何用findstr匹配呢?
这个问题是我使用wmic命令得到的结果,它导出的文本是unicode码,这个批处理无法处理,而且每行的文本也许有不等的空格。
不知道wmic导出的结果是否可以是ansi码?空格的问题如何解决

两个例子是一个问题,我只是举例说一下,防止我表述不清楚。

回复 26# WHY


    多谢 !,ok了

TOP

回复 24# freesoft00


    好吧,批处理大概像这样子:
  1. @echo off
  2. for /f "delims=" %%i in ('wmic product where "name like 'microsoft%%(x64)'" get name /format:list') do (
  3.     for /f "tokens=1*delims==" %%i in ("%%i") do echo;%%j
  4. )
  5. pause
复制代码

TOP

回复 24# freesoft00


    那个是在命令提示符输入的~~放在批处理中运行,%要改成%%

TOP

回复 23# WHY


    Node - www(计算机名称)
ERROR:
Description = Invalid query

运行后的错误代码

TOP

wmic 支持通配符,如果要去掉后面的空格,可以换一种格式输出
wmic product where "name like 'microsoft%(x64)'" get name /format:csv
2

评分人数

TOP

回复 10# 依山居


    支持 *,但不支持 {N}

TOP

ok,可以了

TOP

回复 19# freesoft00

已修改

TOP

回复 18# pcl_test

保存为bat,运行没有结果也没有错误。只提示按任意键退出

TOP

本帖最后由 pcl_test 于 2015-10-23 22:33 编辑

回复 17# freesoft00

bat+js,保存为批处理文件运行

TOP

本帖最后由 freesoft00 于 2015-10-23 22:31 编辑

回复 16# pcl_test


    这是vbs代码?
我保存为vbs,提示如下:
  1. ---------------------------
  2. Windows Script Host
  3. ---------------------------
  4. 脚本: G:\sdssf.vbs
  5. 行: 1
  6. 字符: 1
  7. 错误: 缺少语句
  8. 代码: 800A0400
  9. 源: Microsoft VBScript 编译器错误
  10. ---------------------------
  11. 确定   
  12. ---------------------------
复制代码

TOP

本帖最后由 pcl_test 于 2015-10-23 22:27 编辑

回复 15# freesoft00

严谨些的
  1. //&cls&wmic product get name |cscript -nologo -e:jscript "%~f0"&pause&exit/b
  2. while(!WScript.StdIn.AtEndOfStream) {
  3.     var str = WScript.StdIn.ReadLine()
  4.     if (/^Microsoft.+?\(x64\)\s*$/i.test(str))WSH.Echo(str);
  5. }
复制代码
1

评分人数

TOP

回复 14# pcl_test

确实可以了。看来还是自己思想不灵活呀。想不到这样去处理。

TOP

回复 12# freesoft00


    findstr /i "^Microsoft.*(x64)[^a-z0-9]*$"
1

评分人数

TOP

返回列表