批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] [已解决]批处理从1.csv中取出.txt、.ini、.bat、.vbs的完整路径(含扩展名)

从1.csv中取出.txt、.ini、.bat、.vbs的完整路径(含扩展名),保存为1.txt
完美解决了:
  1. @echo off
  2. (for /f "delims=" %%i in ('findstr "\.txt \.ini \.bat \.vbs" 1.csv') do (
  3.     for /f tokens^=17^ delims^=^" %%j in (%%i) do (
  4.         for /f "delims=-" %%k in ("%%j") do echo,%%k
  5.     )
  6. ))>1.txt
复制代码
pause[/code]*****************************************************************
下面是不能正确输出的1.csv
https://pan.baidu.com/s/1D0-KYijTpeT6mD2UXB3r-g
我是小白,希望老师多多帮助

试一下如下指令
  1. for /f "tokens=1* delims=." %a in ('findstr /i "\<.*.exe" 1.txt') do @where %~a.exe
复制代码
1

评分人数

TOP

试一下如下指令
hfxiang 发表于 2022-9-20 09:35



    我试一试先,辛苦了
我是小白,希望老师多多帮助

TOP

试一下如下指令
hfxiang 发表于 2022-9-20 09:35



    不行,闪一下,也没有生成1.txt
我是小白,希望老师多多帮助

TOP

回复 4# yyz219


2楼的指令在CMD窗口下执行,不是写在bat中执行,输入文件为1.txt,直接在屏幕上输出。

写在bat中执行的指令如下(以下指令提取的是.exe文件,其它的需自行改动):
  1. @rem 保存文件编码为ANSI
  2. @echo 执行中请等候......
  3. @(for /f "tokens=1* delims=." %%a in ('findstr /i "\<.*.exe" 1.csv') do @where "%%~a.exe")>1.txt 2>nul
  4. @echo
  5. @echo 执行完毕......
复制代码
1

评分人数

    • yyz219: 能够正确输出,麻烦修改为批处理技术 + 1

TOP

最好能在网盘中传一份CSV文件看看。
1

评分人数

    • yyz219: 上传了,麻烦看一下技术 + 1

TOP

本帖最后由 yyz219 于 2022-9-20 10:34 编辑
最好能在网盘中传一份CSV文件看看。
qixiaobin0715 发表于 2022-9-20 10:01



https://pan.baidu.com/s/1AhboSmHTB7sLigWmDFuppw
我是小白,希望老师多多帮助

TOP

本帖最后由 yyz219 于 2022-9-20 10:48 编辑
回复  yyz219


2楼的指令在CMD窗口下执行,不是写在bat中执行,输入文件为1.txt,直接在屏幕上输出。
...
hfxiang 发表于 2022-9-20 09:53



    我要提取的是文中粉红色的(这个是变化的)
我是小白,希望老师多多帮助

TOP

回复 8# yyz219


   
直接在CMD窗口下试试如下指令:
  1. @(for /f "tokens=10 delims=," %a in (1.csv) do @for /f %b in ('echo %~a^|findstr /i ".txt .ini .bat .vbs"')  do @echo "%~b")>1.txt 2>nul
复制代码
1

评分人数

    • yyz219: 能够正确输出,麻烦修改为批处理技术 + 1

TOP

本帖最后由 qixiaobin0715 于 2022-9-20 11:16 编辑

回复 7# yyz219
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%x in (.txt .ini .bat .vbs) do set %%x=true
  4. (for /f "delims=" %%i in (1.csv) do (
  5.     for %%j in (%%i) do (
  6.         set str=%%j
  7.     )
  8.     for /f "delims=-" %%k in (!str!) do (
  9.         if defined %%~xk echo,%%k
  10.     )
  11. ))>1.txt
  12. pause
复制代码
看看显示是否正确
1

评分人数

    • yyz219: 再麻烦一下,让它在生成1.txt技术 + 1

TOP

回复  yyz219 看看显示是否正确
qixiaobin0715 发表于 2022-9-20 10:57



    屏幕能够正确显示

再麻烦一下,让它在生成1.txt

谢谢
我是小白,希望老师多多帮助

TOP

回复 11# yyz219
已修改

TOP

回复  yyz219
已修改
qixiaobin0715 发表于 2022-9-20 11:16



    非常感谢,完美解决
我是小白,希望老师多多帮助

TOP

如果数据像你提供的那么规整的话,这样效率应当更高些:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('findstr "\.txt \.ini \.bat \.vbs" 1.csv') do (
  4.     for %%j in (%%i) do set str=%%j
  5.     for /f "delims=-" %%k in (!str!) do echo,%%k
  6. ))>1.txt
  7. pause
复制代码
未经测试。
1

评分人数

TOP

如果数据像你提供的那么规整的话,这样效率应当更高些:未经测试。
qixiaobin0715 发表于 2022-9-20 16:37



    非常感谢
我是小白,希望老师多多帮助

TOP

返回列表