标题: [文本处理] 批处理如何给文本首尾批量加段落? [打印本页]
作者: daohe 时间: 2011-3-21 16:49 标题: 批处理如何给文本首尾批量加段落?
D:/A/ 文件夹及其子文件夹 有几十个到几千个txt文本文档
D:/B/ 文件夹里包含几个到几百个txt文本文档(没有子目录)
批处理要求:
先读取A文件夹所有文件目录,包含路径.
然后随机抽取 B文件夹的任意两个不同txt文档,
挨个添加到A文件夹的每一个文本文档里.
举例:
D:/A/aaa.txt
D:/A/E/bbb.txt
D:/A/ccc.txt
D:/B/111.txt
D:/B/222.txt
D:/B/333.txt
经批处理
________B文件夹随机_______A文件夹______B文件夹随机
D:/A/ 111.txt + aaa.txt + 222.txt
D:/A/E/ 333.txt + bbb.txt + 222.txt
D:/A/ 111.txt + ccc.txt + 333.txt
结果保存在C文件夹(C子目录和文件名与A相同)
D:/C/aaa.txt
D:/C/E/bbb.txt
D:/C/ccc.txt
作者: CrLf 时间: 2011-3-21 17:02
随机...楼主自己都说不清楚的东西,别人怎么搞
作者: caruko 时间: 2011-3-21 17:20
本帖最后由 caruko 于 2011-3-22 12:37 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir d:\a /s /b *.txt') do (
- set /a n+=1
- set "dir_!n!=%%a"
- )
- for /f "delims=" %%i in ('dir d:\b /s /b *.txt') do (
- set /a x=!RANDOM!%%n+1
- set /a y=!RANDOM!%%n+1
- for /f "tokens=1,2" %%a in ("!x! !y!") do copy "!dir_%%a!"+"%%i"+"!dir_%%b!" d:\c\%%~nxi
- )
复制代码
set /a 忘记加/A ,结果自然是%%号带进copy了,命令被分割了。
另外除号改求余,call改for试试
作者: daohe 时间: 2011-3-22 09:03
2# zm900612
的确,这个问题比较难阐释
作者: daohe 时间: 2011-3-22 09:09
本帖最后由 daohe 于 2011-3-22 09:11 编辑
3# caruko
代码跟我需要的思路是对的.但是执行了半天,没有结果出来.很奇怪
最后提示错误, XXX不是内部或外部命令,无法运行命令的提示
作者: tmplinshi 时间: 2011-3-24 04:31
- @echo off
- SetLocal EnableDelayedExpansion
-
- set "S=D:\A"
- set "S_R=D:\B"
- set "D=D:\C"
-
- set n=
- for %%a in ("%S_R%\*.txt") do (
- set /a n += 1
- set !n!=%%~na
- )
-
- cd /d "%S%"
- md "%D%" 2>nul
- for %%i in (*.txt) do (
- set /a r1 = !random! %% n + 1, r2 = !random! %% n + 1
- for /f "tokens=1,2" %%a in ("!r1! !r2!") do (
- copy "%S_R%\!%%a!.txt"+"%%i"+"%S_R%\!%%b!.txt" "%D%\%%~nxi" /b
- )
- )
复制代码
作者: daohe 时间: 2011-3-24 19:57
6# tmplinshi
不行.生成了一个C文件夹,但是里面是空的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |