|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
『楼 主』:
复制,全排列,替换综合在一起的一个问题
我想在txt文档中输出一系列内容,格式如下:
mat_create_lam3( "TSCF", "", 1, ["T300", "shear", "crack", "failure"], ["1.000000E+000", "1.000000E+000", "1.000000E+000", "1.000000E+000"], ["0.000000E+000", "4.500000E+001", "9.000000E+001", "-4.50000E+001"], ["", "", "", ""], 4, "", "Create" )
---------------------------------------这里列举2个句子,在txt里是写在一行的。上面是一个,下面是一个。
mat_create_lam3( "TSCC", "", 1, ["T300", "shear", "crack", "crack"], ["1.000000E+000", "1.000000E+000", "1.000000E+000", "1.000000E+000"], ["0.000000E+000", "4.500000E+001", "9.000000E+001", "-4.50000E+001"], ["", "", "", ""], 4, "", "Create" )
………………
格式都是按上面的格式输出,总共有4种变化形式,T,S,C,F,这4个模式对应后面第一个中括号中内容。首字母都相同,T,对应T300,S,对应shear,C,对应crack,F对应failure.如第一个中的 TSCF,对应["T300", "shear", "crack", "failure"]。。每句就这2个地方有变化。列出所有的情况,也就是T,S,C,F的全排列的可能,总共有4*4*4*4=256种情况。
要将这256个句子写在一个文本文档里输出。
不知道我说清楚了没,批处理能否实现吗?谢谢各位热心朋友!
[ Last edited by superchao115 on 2009-6-4 at 09:25 ]
|
|
2009-6-4 09:20 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
2 楼』:
4位数的排列应该只有24种吧?
难道 aaaa aaab aaac 也算?
另外不知道你要输出怎样的格式,最好给出几个输出后的例子。
如果这个问题用bat来作,效率会很低,你的文件大概有多少行?
[ Last edited by 26933062 on 2009-6-4 at 10:54 ]
|
致精致简! |
|
2009-6-4 10:51 |
|
|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
『第
3 楼』:
AAAA,AAAB,AAAC,AAAD都算,所有的可能都算。256种
给的那2个句子就是格式呀。就是2个地方变化,其他的都一样。
上面给的那个放文本里就一行,256种情况,一种情况一句,共256句。
|
|
2009-6-4 11:01 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
4 楼』:
文本中不能含有 半角 !符号
:
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=1-2* delims=[]" %%i in (a.txt) do (
for /f "tokens=1* delims=," %%a in ("%%i") do (
set "num1=%%a"&set "num2=%%b"
set "num1=!num1:~0,-6!"
)
set "str=%%j"&set "str=!str:,=!"&set "str=!str:"= !"
for %%a in (!str!)do set var=%%a&set tem=!tem! !var:~0,1!&set "!var:~0,1!=%%a"
for %%a in (!tem!) do (
for %%b in (!tem!) do (
for %%c in (!tem!) do (
for %%d in (!tem!) do (
echo !num1!"%%a%%b%%c%%d",!num2!"" ["!%%a!", "!%%b!", "!%%c!", "!%%d!"] %%k
))))))>b.txt
start b.txt [ Last edited by 26933062 on 2009-6-4 at 11:45 ]
|
致精致简! |
|
2009-6-4 11:43 |
|
|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
|
2009-6-4 12:10 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
6 楼』:
为什么我运行正确呢?
|
致精致简! |
|
2009-6-4 12:19 |
|
|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
『第
7 楼』:
我希望得到的结果是:
mat_create_lam3( "TSCF", "", 1, ["T300", "shear", "crack", "failure"], ["1.000000E+000", "1.000000E+000", "1.000000E+000", "1.000000E+000"], ["0.000000E+000", "4.500000E+001", "9.000000E+001", "-4.50000E+001"], ["", "", "", ""], 4, "", "Create" )
mat_create_lam3( "TSCC", "", 1, ["T300", "shear", "crack", "crack"], ["1.000000E+000", "1.000000E+000", "1.000000E+000", "1.000000E+000"], ["0.000000E+000", "4.500000E+001", "9.000000E+001", "-4.50000E+001"], ["", "", "", ""], 4, "", "Create" )
这样下去,256行。。。 可能你没明白我的意思。
|
|
2009-6-4 12:21 |
|
|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
|
2009-6-4 12:26 |
|
|
superchao115
初级用户
积分 26
发帖 32
注册 2009-5-28
状态 离线
|
『第
9 楼』:
谢谢你,我刚弄错了。不好意思,谢谢了,高手。
|
|
2009-6-4 12:27 |
|
|
kendos
初级用户
积分 36
发帖 25
注册 2009-6-1
状态 离线
|
『第
10 楼』:
请问在批处理中如何忽略空格
例如set /p yn=
if "%yn%"=="y" goto 1
if "%yn%"=="n" goto 2
如果输入的字符中有空格或错误字符的话,它下面的分支语句if就起不到作用,它就只会按顺序执行
|
|
2009-6-4 20:50 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
11 楼』:
如果前面字符固定的 我将4楼楼兄的简化下:
将开启变量延迟 放在FOR里
@echo off
(for /f "tokens=1,2* delims=[]" %%i in (a.txt) do (
set num=%%i&set mun=%%k
setlocal enabledelayedexpansion
for %%a in (%%j)do set var=%%~a&set tem=!tem! !var:~0,1!&set "!var:~0,1!=%%~a"
for %%a in (!tem!) do (
for %%b in (!tem!) do (
for %%c in (!tem!) do (
for %%d in (!tem!) do (
echo !num:~,-14!%%a%%b%%c%%d!num:~-10!["!%%a!", "!%%b!", "!%%c!", "!%%d!"]!mun!
))))))>d.txt
start d.txt
|
简单!简单!再简单! |
|
2009-6-4 22:37 |
|
|