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

[文本处理] 批处理对文本变量的重新排列及替换

請教各位前輩幫忙
小弟有一些文本的內容如下:

MY_THUMB.appendItem(1,'復仇之戰.part1.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg'); MY_THUMB.appendItem(2,'復仇之戰.part2.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435430.jpg'); MY_THUMB.appendItem(3,'復仇之戰.part3.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435609.jpg');

............................以此類推

我想要把所有文本紅色內容替換如下:

/Ref:abc /Rename:復仇之戰.part1.rar http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg
/Ref:abc /Rename:復仇之戰.part2.rar http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg
/Ref:abc /Rename:復仇之戰.part3.rar http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg

請問該如何辦到呢?

拜託幫忙,先說聲感謝!::yct20::

[ 本帖最后由 leo1984 于 2009-10-13 20:35 编辑 ]

请先仔细阅读版规,重新取个标题
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-10-13 01:48 发表
请先仔细阅读版规,重新取个标题

兩岸的用語不同

請問標題已改了,還可以嗎?@@

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=2,4 delims='" %%a in (a.txt) do (
  3.    echo /Ref:abc /Rename:%%~na %%b
  4. ))>c.txt
  5. start c.txt
复制代码
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-10-13 11:29 发表
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=2,4 delims='" %%a in (a.txt) do (
   echo /Ref:abc /Rename:%%~na %%b
))>c.txt
start c.txt

感谢您的帮忙

但是我执行代码后,完全没反应,请问是什么原因呢

再谢

TOP

我测试没问题,
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-10-13 12:22 发表
我测试没问题,

版主,我刚才一再的测试

您给的代码存成bat,把我的文本存成a.txt,并且执行后转出的c.txt是空白的@@

我又试着将bat转换成exe一样无效

请问.......是我这边的问题吗@@?

[ 本帖最后由 leo1984 于 2009-10-13 17:17 编辑 ]

TOP

抱歉抱歉~~可以執行,可能是我電腦方才出問題

可以請版主試試複制我的文本嗎

MY_THUMB.appendItem(1,'復仇之戰.part1.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg'); MY_THUMB.appendItem(2,'復仇之戰.part2.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435430.jpg'); MY_THUMB.appendItem(3,'復仇之戰.part3.rar.jpg','http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435609.jpg');

發現執行後,c.txt只有轉換出一列而已

/Ref:abc /Rename:復仇之戰.part1.rar http://1.photo.xuite.net/1/e/1/b/leo20010101010/3556063/t/135435310.jpg

TOP

你给的样本是一行吗?
我是把样本当作三行来处理的
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-10-13 17:52 发表
你给的样本是一行吗?
我是把样本当作三行来处理的

是的,我的样本是长长长....长的到不能再长的一行@@

但是我希望转换出来的是有分行的

请问要如何改呢

又再次感谢

[ 本帖最后由 leo1984 于 2009-10-13 18:21 编辑 ]

TOP

数据能否用code括起来?我们复制太麻烦了!

TOP

每一行都是一样的格式吗?都有三对()括弧?
方便的话,最好给部分样本来
技术问题请到论坛发帖求助!

TOP

:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=1-3 delims=)" %%a in (a.txt) do (
  3.    for %%I in ("%%a" "%%b" "%%c") do (
  4.       for /f "tokens=2,4 delims='" %%i in ("%%I") do (
  5.          echo /Ref:abc /Rename:%%~ni %%j
  6. ))))>c.txt
  7. start c.txt
复制代码
技术问题请到论坛发帖求助!

TOP

原帖由 随风 于 2009-10-13 19:36 发表
echo off&setlocal enabledelayedexpansion
(for /f "tokens=1-3 delims=)" %%a in (a.txt) do (
   for %%I in ("%%a" "%%b" "%%c") do (
      for /f "tokens=2,4 delims='" %%i in ("%%I") do (
          ...

版主大人

c.txt不光只有转换出三行而已

如果仅是三行内容,不需要批处理,我其实可以自己手动处理的@@

我原本要处理的文本内容远比这里的样本还多

我的意思是,可以设定无论多少文本内容都能处理吗?

谢谢^^

[ 本帖最后由 leo1984 于 2009-10-13 19:50 编辑 ]

TOP

你是说一行内容输出不确定多少行?
另:没必要大人大人的,在这里人人平等。。。
技术问题请到论坛发帖求助!

TOP

返回列表