windows - 批处理 CMD - 提取文本直到最后一个特殊字符
问题描述
我正在尝试提取没有文件名的路径位置。例如,程序生成的日志文件将具有类似于以下的字符串:
2021-03-24T13:34:15 - Processing: C:\Source\SubFolder1\SubFolder2\SubFolder3\File1-???????????.txt
我需要从日志文件中提取的内容如下:
C:\Source\SubFolder1\SubFolder2\SubFolder3
到目前为止,我能够得到:
C:\Source\SubFolder1\SubFolder2\SubFolder3\File1-?????????????????????????.txt”
使用以下代码:
for /f "delims=" %%a in ('^<"C:\Source0\sample.txt" find "Processing:"') do set _path="%%a"
set _path_=%_path:~35%
echo %_path_%
请帮助我展示如何省略 File1*-????? 字符串的一部分
编辑:file1-????? 部分的字符长度不固定,可以进一步降低级别的子目录也不固定。唯一固定的部分是字符串的前 35 个字符,我使用 %_path:~35% 省略了这些字符。
解决方案
也许这样的事情对你有用:
For /F "Tokens=3,*" %G In ('%SystemRoot%\System32\find.exe "Processing:" 0^<"C:\Source0\sample.txt"') Do @For %I In ("%~dpH.") Do @Echo %~dpnxI
@For /F "Tokens=3,*" %%G In ('%SystemRoot%\System32\find.exe "Processing:" 0^<"C:\Source0\sample.txt"') Do @For %%I In ("%%~dpH.") Do @Echo %%~dpnxI
推荐阅读
- c# - 如何让程序知道一个点是在一条线的右边还是左边?
- c++ - 如何在arduino中传递函数参数?
- xcode - 当 Xcode 说以前提交的文件没有版本时我该怎么办?
- linux - 我想杀死一个进程
- javascript - Importing script and calling a method on a variable
- ios - 查看其他 ViewController 后,用户输入数据不会保留
- python - 谁能帮我弄清楚如何将此 .txt 文件导入我的代码中?
- sql - 我想在 SQL Unique 约束中允许单个重复值
- angular - Why router passing query parameters with ";" in Angular8?
- r - 在 data.table 中熔化时如何不丢失所有未熔化的列?