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

[文本处理] [已解决]批处理怎样echo含有空格的每一行,作为参数?

本帖最后由 lxh623 于 2011-11-15 14:35 编辑

我的文本象下面,怎样把每一行(一到三个单词,空格分隔)当成一个单词(比如“liquid crystal”)去搜索并移动文件。搜索移动我已经解决。
http://www.bathome.net/redirect. ... 6512&ptid=14568
我想问,怎样echo含有空格的每一行,作为参数?
谢谢您!
文件夹名称1.txt:(示例)
antenna
liq crystal
liquid crystal
liquid crystal display
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

用不带参数的 for
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (
  3.     for %%b in (%%a) do echo %%b
  4. )
复制代码

TOP

用不带参数的 for
CrLf 发表于 2011-11-14 21:58

谢谢!
不是这样的,我想得到“liquid crystal”,“liquid crystal display”之类,你这个得到每行一个单词。

TOP

那是这个吗?
  1. for /f "delims=" %%a in (1.txt) do echo %%a
复制代码

TOP

那是这个吗?
CrLf 发表于 2011-11-15 00:37

谢谢!
单纯echo是对的,但是为什么下面代码不对?
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "delims=" %%a in (文件夹名称1.txt) do (
  4.          set VAR=%%a
  5.          for /f "delims=" %%k in ('dir /s/b/a-d E:\JP-XIN\*.pdf E:\JP-XIN\*.txt  ^| findstr /i "!VAR!"') do (
  6.             for /f "delims=" %%l in ('dir /s/b/a:d-h E:\ ^| findstr /i "!VAR!"  2^>nul') do (
  7.                if not "%%l"=="" move "%%k" "%%~fsl" >nul 2>nul
  8. )))
  9. pause
复制代码

TOP

回复 5# lxh623


    findstr 的搜索关键词中含有空格时需要加 /c 开关:
  1. findstr "a b c" 1.txt
  2. ::搜索的是 a 或者 b 或者 c
  3. findstr /c:"a b c" 1.txt
  4. ::搜索的是 【a b c】
复制代码
1

评分人数

TOP

返回列表