遍历文件内部查找字符串的搜索脚本

在没有MATLAB跳转功能的情况下,作者通过批处理和VBS脚本创建了一个工具,用于查找.m文件中函数调用的位置,甚至扩展到搜索Office文档。脚本首先遍历文件,遇到Office文档时使用`office2txt.vbs`转换成txt再进行搜索。转换过程中,检查是否有同名txt文件,转换成功后执行搜索,完成后删除临时txt文件。搜索函数`SerchString`使用`findstr`命令查找字符串并输出行号。`office2txt.vbs`分别处理word、excel和ppt,word直接另存为txt,excel将所有工作表合并,ppt则需要手动创建并写入文本。
摘要由CSDN通过智能技术生成

在使用matlab写代码的过程中有很多的.m文件作为函数被调用,如果是使用VS自然可以很方便地跳转到函数被调用的地方,但是查了很久发现matlab只能列出一个.m文件中调用了哪些函数,并不能查到某个.m函数文件被其他函数调用的位置,因此只好自己写一个小工具来实现。只要将函数名作为需要搜索的字符串就可以很快查到函数在哪个.m文件中被调用,方便快捷,后来结合了office转txt的功能,实现了扩展到进入文档进行搜索。采用批处理和vbscript脚本最大的好处就是不需要配置环境,可以直接使用。下面对脚本进行大概的解释。


首先给出批处理文件FindString_byLSS.bat的代码:

rem :::: 2017-05-17 by LSS
@echo off&setlocal enabledelayedexpansion
title String search tool by LSS
mode con cols=150

call:main    【ReplaceByYourStringToSearch将该文本替换为需要搜索的字符串】


:main
echo Target: %1
echo Searching for target, please wait......
echo.
echo.
set /a OFFICE = 1
if not exist "office2txt.vbs" (
  echo [?] Warning: Skip all office files while searching because file 【office2txt.vbs】 not found in current path
  echo.
  echo.
  set /a OFFICE = 0
)
set /a count = 0
for /r %%a in (*) do (
  set /a IsOfficeFile = 0
  if "%%~xa" == ".doc" set /a IsOfficeFile = !OFFICE!
  if "%%~xa" == ".DOC" set /a IsOfficeFile = !OFFICE!
  if "%%~xa" == ".docx" set /a IsOfficeFile = !OFFICE!
  if "%%~xa" == ".DOCX" set /a IsOfficeFile = !OFFICE!
  if "%%~xa" == ".xls" set /a IsOfficeFile = !OFFICE!
  if "%%~xa" == "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值