[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
试一下如下指令
  1. for /f "tokens=1* delims=." %a in ('findstr /i "\<.*.exe" 1.txt') do @where %~a.exe
复制代码
1

评分人数

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

回复 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

for指令在命令行执行与批处理内执行,其两者之间的参数对应关系为:
在命令行用单百分号(%),如下:
  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. @(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

本帖最后由 hfxiang 于 2022-9-21 10:45 编辑

回复 20# yyz219


   
如果想快,建议用第3方式具gawk( http://bcn.bathome.net/tool/4.1.3/gawk.exe
  1. @(for /f "delims=" %%a in ('gawk -F"," "$10~/\.txt/||/\.ini/||/\.bat/||/\.vbs/{print $10}" 1.csv') do @for /f "delims=-" %%b in (%%a) do @echo %%b)>1.txt 2>nul
复制代码
1

评分人数

TOP

返回列表