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

[文本处理] 批处理如何给文本首尾批量加段落?

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

随机...楼主自己都说不清楚的东西,别人怎么搞

TOP

本帖最后由 caruko 于 2011-3-22 12:37 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir d:\a /s /b *.txt') do (
  4.           set /a n+=1
  5.           set "dir_!n!=%%a"
  6. )
  7. for /f "delims=" %%i in ('dir d:\b /s /b *.txt') do (
  8.          set /a x=!RANDOM!%%n+1
  9.          set /a y=!RANDOM!%%n+1
  10.          for /f "tokens=1,2" %%a in ("!x! !y!") do  copy "!dir_%%a!"+"%%i"+"!dir_%%b!" d:\c\%%~nxi
  11. )
复制代码
set /a 忘记加/A ,结果自然是%%号带进copy了,命令被分割了。
另外除号改求余,call改for试试

TOP

2# zm900612


的确,这个问题比较难阐释

TOP

本帖最后由 daohe 于 2011-3-22 09:11 编辑

3# caruko

代码跟我需要的思路是对的.但是执行了半天,没有结果出来.很奇怪

最后提示错误, XXX不是内部或外部命令,无法运行命令的提示

TOP

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set "S=D:\A"
  4. set "S_R=D:\B"
  5. set "D=D:\C"
  6. set n=
  7. for %%a in ("%S_R%\*.txt") do (
  8.     set /a n += 1
  9.     set !n!=%%~na
  10. )
  11. cd /d "%S%"
  12. md "%D%" 2>nul
  13. for %%i in (*.txt) do (
  14.     set /a r1 = !random! %% n + 1, r2 = !random! %% n + 1
  15.     for /f "tokens=1,2" %%a in ("!r1! !r2!") do (
  16.         copy "%S_R%\!%%a!.txt"+"%%i"+"%S_R%\!%%b!.txt" "%D%\%%~nxi" /b
  17.     )
  18. )
复制代码

TOP

6# tmplinshi

不行.生成了一个C文件夹,但是里面是空的

TOP

返回列表