找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23032|回复: 3

[文件操作] [已解决]批处理怎样把数量超过1000文件自动分为多份?

[复制链接]
发表于 2021-5-24 09:48:02 | 显示全部楼层 |阅读模式
d盘a目录下有3000个html文件,想要把这3000个文件插入到xml里面,一次性插入代码如下(已测试成功)

因为有数量的限制,现在想实现的是每超过1000个html,则生成多个文件

比如1000以内 生成text.xml
1000-2000 就生成 text.xml text1.xml
2000-3000 就生成 text.xml(1-1000) text1.xml(1000-2000) text2.xml(2000-3000) 这样
请问各位大神如何修改?

一次性插入代码:
  1. @powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
  2. $xml = @'
  3. <?xml version="1.0" encoding="utf-8"?>
  4. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  5.     <url>
  6.         <loc>http://www.baidu.com/</loc>
  7.         <changefreq>daily</changefreq>
  8.         <priority>1.00</priority>
  9.     </url>
  10.     {0}
  11. </urlset>
  12. '@
  13. $url = @'

  14.     <url>
  15.         <loc>http://www.baidu.com/{0}</loc>
  16.         <changefreq>daily</changefreq>
  17.         <priority>0.8</priority>
  18.     </url>
  19. '@
  20. $endl = "`r`n"
  21. $urls = ''
  22. Get-ChildItem '*.html' | foreach { $urls += $url -f $_.Name }
  23. $xml -f $urls | Out-File 'test.xml'
  24. 'test.xml'
复制代码
 楼主| 发表于 2021-5-24 23:26:08 | 显示全部楼层
不知道有大神知道吗 谢谢
发表于 2021-5-26 11:37:57 | 显示全部楼层
本帖最后由 newswan 于 2021-5-26 12:59 编辑

  1. $endl = "`r`n"

  2. $urls = @()
  3. $n=(get-childitem *.html).count
  4. for ($x=0 ; $x -le $n ; $x++) {
  5.     $urls += ""
  6. }

  7. $i=0
  8. Get-ChildItem '*.html' | foreach {
  9.     $i+=1
  10.     $j=[math]::ceiling($i/2000)
  11.     $urls[$j] = $urls[$j] + $url -f $_.Name
  12. }n

  13. for ($x=1 ; $x -le [math]::ceiling($n/2000) ; $x++) {
  14.     $xml -f $urls[$x] | Out-File "test$x.xml"
  15. }
复制代码
替换 21行到最后

[math]::ceiling 序号是 1 2 3
[math]::floor 序号是 0 1 2

评分

参与人数 1技术 +1 收起 理由
任贤齐 + 1 谢谢大神,榜样

查看全部评分

 楼主| 发表于 2021-5-26 19:11:18 | 显示全部楼层
回复 3# newswan


    感谢大神,你好像多写了个n 删除可以了 多谢多谢啊  像您学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 19:55 , Processed in 0.030626 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表