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


    是我要的效果,非常感谢,另外问下,是否有纯P的方法?

TOP

回复 15# idwma


    这个牛叉了,我试了用vbs,写了好几十行,没高兴写下去

QQ 20147578

TOP

回复 16# lonron

是不是像一楼的放到bat的for里
  1. @echo off
  2. for /f "delims=" %%a in ('powershell "function test($id){(irm ('https://189.ly93.cc/api.php?c=list&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id)).data|%%{if($_.isFolder){$_.fileId;test($_.fileId)}}};test"') do (
  3.         echo %%a>>test.txt
  4. )
  5. pause
复制代码
1

评分人数

TOP

回复 17# czjt1234


    看前辈们用过递归刚好练习一下

TOP

回复 18# idwma


    万分感谢,终于解决了,纠结了我好几天了 T_T,我光改问题说明想让大家看清楚,就改了好几次。

TOP

回复 20# lonron


    据说程序员最怕的就是改需求

QQ 20147578

TOP

回复 21# czjt1234


    隔行如隔山啊,同样是脚本语言,对PS和P实在很吃力,有的问题用pascal就容易多了

TOP

本帖最后由 lonron 于 2023-5-8 22:11 编辑

回复 18# idwma


    老师,不好意思,刚刚认真测试代码后发现有三个问题被我忽略了。还恳请您再次帮忙修改下,谢谢:

1、是需要在遍历的开始就先输出一行根目录ID。(根目录ID在path字段里可以获取,但是子文件夹path字段里的feliId是包括自身以及所有上级目录ID数据的,就是目录树。)
2、是这个页面有一个条数限制,默认是30条数据。(格式是在 c=list 后面加上 &limit= 条数,count 字段是当前目录的文件和文件夹总数。)
3、是这个网站好像对抓取数据有做过载保护,所以需要每次获取一条ID后延迟一秒。(测试过一秒一条基本安全没出现过报错。)

TOP

回复 23# lonron
  1. @echo off
  2. for /f "delims=" %%a in ('powershell "function test($id){irm ('https://189.ly93.cc/api.php?c=list&limit=99999999999&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id)|%%{if(!$global:a){($global:a=$_.path.fileId)}$_.data|%%{if($_.isFolder){$_.fileId;sleep -m 500;test($_.fileId)}}}};test"') do (
  3.         echo %%a>>test.txt
  4. )
  5. pause
复制代码

TOP

回复 24# idwma


    这个limit能获取实际的数吗?

TOP

回复 25# lonron


可以但要套一层循环
现在这样不好吗可以少发一次网络请求

TOP

回复 26# idwma


    条数这个我确实一开始也这么想的,不过我本来就是拿实例学习的,如果老师您方便,还希望您能帮我修改下,真的非常感谢!

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('powershell "function test($id){$z=irm ('https://189.ly93.cc/api.php?c=list&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id);$z='https://189.ly93.cc/api.php?c=list&limit='+$z.count+'&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id;sleep 1;irm $z|%%{if(!$global:a){($global:a=$_.path.fileId)}$_.data|%%{if($_.isFolder){$_.fileId;sleep -m 500;test($_.fileId)}}}};test"') do (
  3.         echo %%a>>test.txt
  4. )
  5. pause
复制代码

TOP

回复 28# idwma


    非常感谢!!!最后有一个小小的疑问,就是单独把ps这段放入控制台的时候,我发现第一条和第二条是同时出现的,其他都是按固定的延迟显示出来,还有就是抓取ID中途我ctrl+c终止,重新运行这段代码时,根目录的ID不会读取了这是为什么?

TOP

一二条在同一个页面
重置变量$a
  1. powershell "$a=0;function test($id){$z=irm ('https://189.ly93.cc/api.php?c=list&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id);$z='https://189.ly93.cc/api.php?c=list&limit='+$z.count+'&shareCode=VVFnmuRviQRj&accessCode=?'+'&fileId='+$id;sleep 1;irm $z|%%{if(!$global:a){($global:a=$_.path.fileId)}$_.data|%%{if($_.isFolder){sleep -m 500;$_.fileId;test($_.fileId)}}}};test"
复制代码
1

评分人数

TOP

返回列表