返回列表 发帖

[文本处理] 批处理怎样实现排列组合?

一个排列组合的问题,已经有初步思路:基本模型如下:

@echo off
set ".1=a"
set ".2=b"
set ".3=c"
set n=3
set "prefix=<title>"
set "suffix=</title>"
cd /d "C:\Documents and Settings\Administrator\桌面\新建文件夹"
for /f "delims=" %%a in ('dir /a-d/b *.html') do (
  set file=%%a
  setlocal enabledelayedexpansion
  set /a n=!random!%%n+1
  (
    for %%a in (!n!) do echo;!prefix!!.%%a!!suffix!
    more "!file!"
  ) > "%temp%\~tmp"
  move "%temp%\~tmp" "!file!"
  endlocal
)
pauseCOPY



现在运行系列只能生成
<title>a</title>
<title>b</title>
<title>c</title>

我本意是生成这样的p33的排列组合结果里面任意取3个即可

<title>abc</title>
<title>ab</title>
<title>ac</title>
<title>bc</title>
<title>bc</title>
这样的

明白我意思了吗?

你好,超级版主,还漏掉结果是
ab
ac
bc
这样的3个结果,

可以帮我和上面的我原始的部分结合起来吗,谢谢

TOP

你好,版主,不好意思我确实一开始 写错了,多了个bc,对不起哦.让大家理解错了!

我第一段的意思是
a
b
c
这样随机取a  b  c  放置title之间

当前需求是abc 的排列组合放置title之间

比如
<title>abc</title>
<title>ab</title>
<title>ac</title>
<title>bc</title>

麻烦帮我整合一下bat,就是把
set "prefix=<title>"
set "suffix=</title>"
cd /d "C:\Documents and Settings\Administrator\桌面\新建文件夹"
for /f "delims=" %%a in ('dir /a-d/b *.html') do (
  set file=%%a
  setlocal enabledelayedexpansion
  set /a n=!random!%%n+1
  (
    for %%a in (!n!) do echo;!prefix!!.%%a!!suffix!
    more "!file!"
  ) > "%temp%\~tmp"
  move "%temp%\~tmp" "!file!"
  endlocal
)
pauseCOPY
结合起来,谢谢!

TOP

最好生成后是替换掉原来
<title>替换前</title>

TOP

哎,很多东西要学啊,都是一知半解 ,

感觉bat 和 正则表达式 都是非常 nb的东西 !

哈哈,发感慨了,期待 答案 !谢谢 ~~

TOP

大伙上班了吗?繁忙的一个礼拜又开始了 ~

TOP

你好523

最后一段测试下来蛮不错的!
我假如用来将 指定文件夹:
C:\Documents and Settings\Administrator\桌面\新建文件夹

里面所有html 里面的<title>原有标题</title>

替换掉,如何写入呢?
即下列代码 ,指定 文件夹,指定文件格式

最好是这样的格式去定义:

set ".1=a"
set ".2=b"
set ".3=c"
set n=3

会比较方便! 谢谢 ~
cd /d "C:\Documents and Settings\Administrator\桌面\新建文件夹"
for /f "delims=" %%a in ('dir /a-d/b *.html') do (COPY


谢谢523 ~
期待最全bat ~

[ 本帖最后由 fanfande 于 2010-7-5 22:55 编辑 ]

TOP

是的

替换原有指定目录中所有的html文件里面的

<title>原有 </title>


523你理解的很对!

趁 ~中午饭来看下! 天气热,大家注意多喝水~

TOP

我来了

请问 为啥您不用
set ".1=a"
set ".2=b"
set ".3=c"
set n=3COPY
这样定义呢?

我运行下来出现2个bug

①当a b  c 改成中文时不执行

②替换指定的文件,他将文件全部删除了,而不是单单替换的原来的<title></title> 之间的内容!

版主可以自己测试下,不甚感激啊~
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

523066680 你好又要麻烦你了,前2天出差了! 事情是这样的,也许是我的描述不能让大家理解清楚:

原始状态是:

①一个文件夹里面一堆html文件,html文件有自己的<title>这里是原有的标题</title>

②需求一个bat执行,先设定几个中文标题,这里我打个比方,比如:  搜狐网  新浪网 腾讯网 中华网

③让bat随机组合这些中文标题,使之结果形如:
搜狐网新浪网
搜狐网腾讯网
搜狐网中华网
新浪网腾讯网
新浪网中华网
腾讯网中华网
.....

④将这些组合的结果替换该文件夹里面的所有html的原来的  <title>这里是需要替换的文字</title>
使得这些html的标题变成

<title>搜狐网新浪网</title>
<title>搜狐网腾讯网</title>
<title>搜狐网中华网</title>
<title>新浪网腾讯网</title>
<title>新浪网中华网</title>
<title>腾讯网中华网</title>


万分谢谢,不好意思,出差了,没来收帖子!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

哥,帮我出个完整的吧!
我工作中经常碰到这样的事情,

按照18楼的思路,不甚感激,甚至酬谢!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

原有的<title>   <title>
仍然存在呢!

当前测试下来是"如下结果"还是有点小bug:
<title>搜狐网中华网</title>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<title>个人主页</title>COPY
原则上来讲应该将
<title>个人主页</title>全部重写为
<title>搜狐网中华网</title>

也就是说一个html里面只有一个
<title>搜狐网中华网</title>了,把之前的
<title>个人主页</title>干掉了

其实说白了就是替换原有的

<title> 这里是将要被替换掉的文字 </title> 中间的文字

其中<title>  </title>不分大小写!


谢谢你小兄弟!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

回复随风 版主的几个问题:

①每个html文件只有一个<title>这里显示成标题</title>

②不是预先设置中文标题,当然也可以预先设置好标题,这里是随机已经设定的几个标题然后让他去替换原有的html里面的
<title>这里显示成标题</title>
至于多少个标题,完全对应于有几个html文件!

③最终结果不是每个html文件都统一标题,那就没有意义了,而是让每个html文件用随机产生的标题去替换,最终的目的就是尽可能的让每个html文件的标题不一样 ,谢谢 版主关心!

这2个问题也帮我处理下,不甚感激!
http://www.bathome.net/thread-8470-1-1.html
http://www.bathome.net/thread-8469-1-1.html
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

版主帮忙看一下,谢谢!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

请问, 帮主不在吗?
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

返回列表