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

[文本处理] 批处理怎样以特定方式输出文本字符?

在hh.txt中,存在几行字符 我想一次输出相邻的两个字符 但怎么就是做不到呢
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=" %%i in (hh.txt) do (
  4. set a=%%i
  5. for  %%i in (!a!) do (
  6. set b=!a:~0,2!
  7. echo !b!
  8. set a=!a:~2!
  9. )
  10. pause>nul
  11. )
  12. pause
复制代码
真的想不通以上代码错在何处 请指教!

16L

本帖最后由 er8852973 于 2011-4-6 11:31 编辑

没有什么提示啊 就是正常执行啊 只是没有达到我的要求而已
hh.txt内容是我瞎打的 没有实际意义啊
内容如下:
的风  格将塑料袋口发几个的撒个的上缴国库的设计风格桑德菲杰个kdj赛罗克刚加的是否见过的是风格的几首歌绝地逢生空格键抚顺得更久的非水库沟丢风撒脚刚加的赛罗克几个道鸡飞狗叫看拉到发几个的疯狂刘均国开朗大方过来看丢风撒脚孤苦伶
执行后显示  的风
             格
没有继续显示啊

TOP

4L的代码也达到了我的要求 谢谢

TOP

15# er8852973


你的代码运行没有什么错误提示吗?如果运行一闪而过,可以打开一个 cmd 窗口,输入批处理文件名来运行,看错误提示是什么。

最好把 hh.txt 的内容贴一下。

TOP

还要谢谢12楼的朋友 你的代码实现了我的要求 但我的代码错在哪里 帮我看看呗 谢了啊

TOP

对了 能不能帮我看看我的代码错在哪里啊

TOP

9# wc726842270


呵呵,并没有什么特别的意思,就是凑一个差不多的数字。
---学无止境---

TOP

  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.     set s=%%a
  4.     SetLocal EnableDelayedExpansion
  5.     if "!s:~2,1!" == "" (
  6.         rem 如果字符数小于 3,则直接输出
  7.         echo !s!
  8.     ) else (
  9.         rem ---------- 计算字符个数 ----------
  10.         set /a a = 8189, c = 0
  11.         for /l %%a in (1 1 13) do (
  12.             set /a "b = (a - c) / 2 + c"
  13.             for %%b in (!b!) do (
  14.                 if "!s:~%%b,1!"=="" (set a=!b!) else set c=!b!
  15.             )
  16.         )
  17.         rem ---------- / 计算字符个数 ----------
  18.         for /l %%a in (!a! -2 1) do echo,!s:~-%%a,2!
  19.         EndLocal
  20.     )
  21. )
  22. pause
复制代码

TOP

呵呵,仅是想上BROLY再上一次线。很久没看见了,这个应该是一行的最大字节,至于字符那好像要看是什么格式的文本了
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

65534太多了,一个变量最多8192字节

TOP

4# broly

4L能否说下范围为什么是0到65534之间。
PS:希望4L能给予答复
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

5楼的朋友 我用两个for是想一个用来选取一段文字的每一行 另一个for对选出的行进行逐字的处理 不知道我的思路对不 呵呵  请指教

TOP

我是lz  我的代码的目的就是输出文字 我打个比方吧 比如下面的文字
“我初学批处理我是菜鸟请大家多指教”
我想让上面的字符这样输出
“我初 学批 处理 我是 菜鸟 请大 家多 指教”
就是每两个字一起输出就行 中间用空格或者换行隔开都行

TOP

楼主首先要说明具体要做什么?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

看不懂楼主的代码,为什么要用多余的for?
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=" %%i in (hh.txt) do (
  4. set a=%%i
  5. echo !a:~0,2!
  6. set a=!a:~2!
  7. pause>nul
  8. )
  9. pause
复制代码

TOP

返回列表