[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 for_flr 于 2021-12-17 17:38 编辑
  1. $d1="C:\Users\lenovo\Desktop\1"
  2. $d2="C:\Users\lenovo\Desktop\2"
  3. $dir1=Get-ChildItem $d1|Where-Object{$_.PSIsContainer -eq $true}
  4. $dir2=Get-ChildItem $d2|Where-Object{$_.PSIsContainer -eq $true}
  5. $num=$dir1.Count / $dir2.Count
  6. $num=[math]::Truncate($num)
  7. $mod=$dir1.Count % $dir2.Count
  8. $begin=0
  9. $end=$num
  10. $begin2=0
  11. $end2=$num-1
  12. for ($a=0;$a -lt $dir2.Count;$a++){
  13. if ($a -lt $mod){
  14.   Copy-Item $dir1[$begin..$end].fullname $dir2[$a] -WhatIf
  15.   $begin+=$num+1
  16.   $end+=$num+1
  17.   $begin2=$begin
  18.   $end2=$begin2+$num-1
  19.   
  20. }else{
  21.   Copy-Item $dir1[$begin2..$end2].fullname $dir2[$a] -WhatIf
  22.   $begin2+=$num
  23.   $end2+=$num
  24. }
  25. }
复制代码
powershell,测试没问题的话,就把-whatif 删掉

TOP

powershell太吃力了,这个问题用批处理简单一些。

TOP

select-object -first改成get-random -count ,随机
move改成copy,复制
1

评分人数

    • 5i365: 多谢帮忙技术 + 1

TOP

回复 19# 5i365


    $dir2=Get-ChildItem $d2|Where-Object{$_.PSIsContainer -eq $true}
这一句不是获取文件夹2下的文件夹并写入变量dir2吗
在dir2中排除掉你不想分配的文件夹名字就行。get-childitem有个-exclude参数,表示不包括...不包括的内容用逗号依次隔开
  1. $dir2=Get-ChildItem $d2 -exclude A,B|Where-Object{$_.PSIsContainer -eq $true}
复制代码

TOP

返回列表