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

[文本处理] 批处理如何删除txt文本中每行特定位置的数字字符串的前导/前面/开头的0(零)

本帖最后由 pcl_test 于 2017-4-23 09:24 编辑

批处理如何删除txt中小于100位数的0?
我有一文本内容如下

StrCpy $download001 'http://3.share.photo.xuite.net/hannstar/13e42e5/1884112/69088533_x.jpg'
StrCpy $download002 'http://3.share.photo.xuite.net/hannstar/13e4263/1884112/69088659_x.jpg'
StrCpy $download003 'http://3.share.photo.xuite.net/hannstar/13e42eb/1884112/69088795_x.jpg'
.
.
.
StrCpy $download019 'http://3.share.photo.xuite.net/hannstar/13e4250/1884112/69091968_x.jpg'
StrCpy $download020 'http://3.share.photo.xuite.net/hannstar/13e42cc/1884112/69092092_x.jpg'
StrCpy $download021 'http://3.share.photo.xuite.net/hannstar/13e423d/1884112/69092205_x.jpg'


我要删除百位数内开头的0字符

请问要怎么处理

感谢!
感謝!

  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.    set str=%%a
  4.    setlocal enabledelayedexpansion
  5.    set str=!str:$download0=$download!
  6.    echo !str:$download0=$download!
  7.    endlocal
  8. ))>$
  9. move $ a.txt
复制代码

TOP

CrLf 发表于 2011-9-12 17:13


成功了

十分感谢你帮忙

另外再请教一下

文本处理后,可以依照数字由小至大作行排序吗?

如下

StrCpy $download1 'http://3.share.photo.xuite.net/hannstar/13e42e5/1884112/69088533_x.jpg'
StrCpy $download2 'http://3.share.photo.xuite.net/hannstar/13e4263/1884112/69088659_x.jpg'
StrCpy $download3 'http://3.share.photo.xuite.net/hannstar/13e42eb/1884112/69088795_x.jpg'
StrCpy $download4 'http://3.share.photo.xuite.net/hannstar/13e42eb/1884112/69088795_x.jpg'
.
.
.
.


感谢!

TOP

我找了这篇套用,可以按数字照排序
http://www.bathome.net/viewthrea ... hlight=%C5%C5%D0%F2

但因为我文本的数值超过三位数,排序会变成这样

StrCpy $download1 'http://3.share.photo.xuite.net/hannstar/13e42e5/1884112/69088533_x.jpg'
StrCpy $download10 'http://3.share.photo.xuite.net/hannstar/13e42d5/1884112/69089797_x.jpg'
StrCpy $download107 'http://3.share.photo.xuite.net/hannstar/13e4227/1884112/69106263_x.jpg'
StrCpy $download108 'http://3.share.photo.xuite.net/hannstar/13e42e5/1884112/69106453_x.jpg'
StrCpy $download109 'http://3.share.photo.xuite.net/hannstar/13e421e/1884112/69106766_x.jpg'
StrCpy $download11 'http://3.share.photo.xuite.net/hannstar/13e42f1/1884112/69090081_x.jpg'
StrCpy $download110 'http://3.share.photo.xuite.net/hannstar/13e42a6/1884112/69106902_x.jpg'
StrCpy $download111 'http://3.share.photo.xuite.net/hannstar/13e42a3/1884112/69107155_x.jpg'
StrCpy $download112 'http://3.share.photo.xuite.net/hannstar/13e4269/1884112/69107353_x.jpg'
StrCpy $download113 'http://3.share.photo.xuite.net/hannstar/13e4248/1884112/69107576_x.jpg'
StrCpy $download114 'http://3.share.photo.xuite.net/hannstar/13e421e/1884112/69107790_x.jpg'
StrCpy $download115 'http://3.share.photo.xuite.net/hannstar/13e42ce/1884112/69107966_x.jpg'
StrCpy $download116 'http://3.share.photo.xuite.net/hannstar/13e4254/1884112/69108100_x.jpg'
StrCpy $download117 'http://3.share.photo.xuite.net/hannstar/13e4239/1884112/69108329_x.jpg'
StrCpy $download118 'http://3.share.photo.xuite.net/hannstar/13e42d4/1884112/69108484_x.jpg'
StrCpy $download119 'http://3.share.photo.xuite.net/hannstar/13e4255/1884112/69108613_x.jpg'
StrCpy $download12 'http://3.share.photo.xuite.net/hannstar/13e42a4/1884112/69090516_x.jpg'

请问该怎么修改谢谢

TOP

要排序就把那行
  1. (for /f "delims=" %%a in (a.txt) do (
复制代码
换成:
  1. (for /f "delims=" %%a in ('sort /+12 a.txt') do (
复制代码

TOP

要排序就把那行换成:
CrLf 发表于 2011-9-12 17:39




   
你好,我照您的方法加入后

輸出後的文本变成空白了

/+12 这指令不太懂其意涵@@

TOP

我不知道sed会不会冲突到,目前我整个处理文本的指令如下
  1. sed -r "s/.*part([0-9][0-9][0-9]).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" a.txt >output.txt
  2. sed -i "/^$/d" output.txt
  3. sed -e "s/download00/download/g" output.txt
  4. @echo off
  5. (for /f "delims=" %%a in ('sort /+12 output.txt') do (
  6.    set str=%%a
  7.    setlocal enabledelayedexpansion
  8.    set str=!str:$download0=$download!
  9.    echo !str:$download0=$download!
  10.    endlocal
  11. ))>$
  12. move $ output.txt
复制代码

TOP

这是我要处理的文本

请先进帮我排序测试,谢谢

TOP

本帖最后由 Seder 于 2011-9-13 10:54 编辑

直接处理你上个帖子那个文本就可以了,不用另外再弄个批处理。
你再上个帖子说清楚点就可以了麻
  1. sed -r "s/.*part0*([1-9][0-9]*).rar.*src=.(.*). border.*/StrCpy $download\1 '\2'/" test
复制代码

TOP

本帖最后由 leo198444 于 2011-9-13 19:53 编辑
直接处理你上个帖子那个文本就可以了,不用另外再弄个批处理。
你再上个帖子说清楚点就可以了麻
Seder 发表于 2011-9-12 23:49




    你好,不好意思我尽力去解释

目前我遇上的问题是不知道怎样对处理好的文本,依数字对行作排序

处理前
StrCpy $download267 'http://9.share.photo.xuite.net/leo1984leoleo/19fece9/3558640/135530233_x.jpg'
StrCpy $download262 'http://9.share.photo.xuite.net/leo1984leoleo/19fecf3/3558640/135530243_x.jpg'
StrCpy $download261 'http://9.share.photo.xuite.net/leo1984leoleo/19fec02/3558640/135530258_x.jpg'
StrCpy $download263 'http://9.share.photo.xuite.net/leo1984leoleo/19fec0d/3558640/135530269_x.jpg'
StrCpy $download269 'http://9.share.photo.xuite.net/leo1984leoleo/19fec1d/3558640/135530285_x.jpg'
StrCpy $download268 'http://9.share.photo.xuite.net/leo1984leoleo/19fec2d/3558640/135530301_x.jpg'
StrCpy $download266 'http://9.share.photo.xuite.net/leo1984leoleo/19fec39/3558640/135530313_x.jpg'
StrCpy $download261 'http://9.share.photo.xuite.net/leo1984leoleo/19fec46/3558640/135530326_x.jpg'
StrCpy $download265 'http://9.share.photo.xuite.net/leo1984leoleo/19fec53/3558640/135530339_x.jpg'
StrCpy $download264 'http://9.share.photo.xuite.net/leo1984leoleo/19fec5f/3558640/135530351_x.jpg'

处理后
StrCpy $download261 'http://9.share.photo.xuite.net/leo1984leoleo/19fecf3/3558640/135530243_x.jpg'
StrCpy $download262 'http://9.share.photo.xuite.net/leo1984leoleo/19fec02/3558640/135530258_x.jpg'
StrCpy $download263 'http://9.share.photo.xuite.net/leo1984leoleo/19fec0d/3558640/135530269_x.jpg'
StrCpy $download264 'http://9.share.photo.xuite.net/leo1984leoleo/19fec1d/3558640/135530285_x.jpg'
StrCpy $download265 'http://9.share.photo.xuite.net/leo1984leoleo/19fec2d/3558640/135530301_x.jpg'
StrCpy $download266 'http://9.share.photo.xuite.net/leo1984leoleo/19fec39/3558640/135530313_x.jpg'
StrCpy $download267 'http://9.share.photo.xuite.net/leo1984leoleo/19fec46/3558640/135530326_x.jpg'
StrCpy $download268 'http://9.share.photo.xuite.net/leo1984leoleo/19fec53/3558640/135530339_x.jpg'
StrCpy $download269 'http://9.share.photo.xuite.net/leo1984leoleo/19fec5f/3558640/135530351_x.jpg'

谢谢

TOP

本帖最后由 hankerer 于 2011-9-13 20:05 编辑
你好,我照您的方法加入后

輸出後的文本变成空白了

/+12 这指令不太懂其意涵@@
leo198444 发表于 2011-9-12 17:48


应该是从第几个字符开始排序。你换成16试试?

TOP

应该是从第几个字符开始排序。你换成16试试?
hankerer 发表于 2011-9-13 20:02


如果数字是决定起始字符运行

我刚试了代码,结果是一片空白

请您看看我要测试的文本

谢谢

TOP

刚试了一下

原来是有重复的数字

抱歉抱歉

请问有指令可以帮助清除重复的行吗@@

TOP

你們不能這樣拋棄我不管啊

我是帶著真心誠意的來問問題的

人和人之間互相幫助是基本道理

所謂各有所長,互惠互利

懂得批處理幫忙批處理,懂得修冰箱的幫忙修冰箱,我懂php就寫php

這世界不就是一點一滴構築起來的

我們有困難能受別人幫忙,有能力也能夠快樂的幫助別人

這世界才感到美好是不?

大家都是中國人,團結幫忙不是挺好的

我的爺啊哥啊

來幫幫我這台灣人吧

嗚嗚嗚嗚

TOP

你们要体谅学程式会有盲点啊

我有学其他程序语言,再学习批处理反而特别感到困难

因为会受到自己学习的逻辑给影响,涵式特别脑袋转不过来

TOP

返回列表