标题: (完结)+20求助,批量提取文件夹中的照片名称和照片数量 [打印本页]
作者: hxc1995 时间: 2024-7-23 15:59 标题: (完结)+20求助,批量提取文件夹中的照片名称和照片数量
本帖最后由 hxc1995 于 2024-7-24 08:43 编辑
批量提取五级目录下的文件夹中的JPG名称和统计JPG数量,提取每级目录,生成Excel
作者: newswan 时间: 2024-7-23 16:27
大概,想生成什么样式?
作者: hxc1995 时间: 2024-7-23 16:44
回复 2# newswan
想生成Excel中显示:1级文件夹名称,2级名称,3级名称,4级名称,5级名称,JPG数量,JPG名称
作者: newswan 时间: 2024-7-23 17:06
本帖最后由 newswan 于 2024-7-23 18:44 编辑
powershell- $folder = "D:\share\tech"
- $outfile = "D:\out.csv"
-
- $folder = Get-Item -Path $folder
- $folderParent = $folder.Parent
- $n = $folder.FullName.Length + 1
-
- Push-Location $folder
- $List = [System.Collections.ArrayList]@()
-
- Get-ChildItem -Path "*.jpg" -Recurse -Depth 5 | Group-Object Directoryname | ForEach-Object {
- $arr = ( $_.Name.Substring($n) -split "\\" )
- $str1 = ( $arr -join "," ) + ( "," * (5 - $arr.count) )
- $str2 = $_.Count
- $str3 = $_.Group.Name -join ";"
- [void]$List.add( $str1 + "," + $str2 + "," + $str3 )
- }
-
- Pop-Location
-
- $List | Out-File -FilePath $outfile -Encoding utf8
复制代码
作者: zaqmlp 时间: 2024-7-23 17:33
本帖最后由 zaqmlp 于 2024-7-23 18:14 编辑
存为ANSI/GB2312编码的bat,跟一级文件夹放一起运行- <# :
- cls&echo off&cd /d "%~dp0"
- path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
- set "current=%cd%"
- powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
- pause
- exit
- #>
- $current=($env:current).trimend('\');
- $depth=5;
- $ext=@('.jpg');
- $outfile=$current+'\结果.csv';
- $s=New-Object -TypeName System.Collections.ArrayList;
- [void]$s.add("一级`t二级`t三级`t四级`t五级`t数量`t名称");
- $root=New-Object IO.DirectoryInfo($current)
- $folders=$root.GetDirectories('*','AllDirectories');
- for($i=0;$i -lt $folders.length;$i++){
- $arr=$folders[$i].FullName.Substring($current.length+1).split('\');
- if($arr.length -eq $depth){
- $files=@(dir -literal $folders[$i].FullName|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])})|%{$_.Name};
- $line=$arr -join "`t";
- if($files.length -ge 1){
- $line +="`t"+$files.length+"`t"+'"'+($files -join "`n")+'"';
- }
- [void]$s.add($line);
- }
- }
- [IO.File]::WriteAllLines($outfile, $s, [Text.Encoding]::GetEncoding('Unicode'));
复制代码
作者: hxc1995 时间: 2024-7-23 17:49
回复 5# zaqmlp
生成的EXCEL文件名和里面标题乱码了,文件名是数字,在表格里也是乱码的,需要表格内容是文本格式
作者: zaqmlp 时间: 2024-7-23 17:52
回复 6# hxc1995
另存为ANSI/GB2312编码的bat
作者: hxc1995 时间: 2024-7-23 18:06
回复 7# zaqmlp
里面的内容能不能改成打开是文本格式的,数字太长不是文本格式就乱码了
作者: zaqmlp 时间: 2024-7-23 18:12
本帖最后由 zaqmlp 于 2024-7-23 18:17 编辑
回复 8# hxc1995
bat无法直接生成xls/xlsx格式表格,用microsoft office excel打开生成的csv文件,另存为xls/xlsx格式表格即可
作者: hxc1995 时间: 2024-7-24 08:39
回复 9# zaqmlp
行吧,我支付
作者: hxc1995 时间: 2024-7-24 08:40
回复 5# zaqmlp
刚试了下,没用,已经有人解决了,谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |