gpt4 book ai didi

windows - 如何递归文件夹并显示相对文件夹路径?

转载 作者:行者123 更新时间:2023-12-05 01:23:17 26 4
gpt4 key购买 nike

这是一个简单的脚本:

$srcpth = "C:\Users\Mark\Desktop\dummy\"
$files = Get-ChildItem -Path $srcpth -File -Recurse

foreach ($f in $files) {
$filen = $f.Name
$filesize = $f.Length
Write-Output "$filen $filesize"
}

这将正确循环遍历 C:\Users\Mark\Desktop\dummy 中的所有子文件夹并输出文件名和文件大小,但它不会显示相对路径。如何解析相对路径?谢谢。

编辑:在下面添加以澄清所需的输出:

例如,C:\Users\Mark\Desktop\dummy 下是包含文件的子文件夹

C:\Users\Mark\Desktop\dummy\file00.txt
C:\Users\Mark\Desktop\dummy\folder01\file01_01.txt
C:\Users\Mark\Desktop\dummy\folder01\file01_02.txt
C:\Users\Mark\Desktop\dummy\folder01\file01_03.txt

C:\Users\Mark\Desktop\dummy\folder02\file02_01.txt
C:\Users\Mark\Desktop\dummy\folder02\file02_01.txt

C:\Users\Mark\Desktop\dummy\folder03\file03_01.txt
C:\Users\Mark\Desktop\dummy\folder03\file03_02.txt
C:\Users\Mark\Desktop\dummy\folder03\file03_03.txt
C:\Users\Mark\Desktop\dummy\folder03\file03_04.txt

以上代码的输出产生:

file00.txt 9
file01_01.txt 10
file01_02.txt 12
file01_03.txt 12
file02_01.txt 15
file02_01.txt 14
file03_01.txt 11
file03_02.txt 15
file03_03.txt 13
file03_04.txt 12

但我想要的是:

file00.txt 9
\folder01\file01_01.txt 10
\folder01\file01_02.txt 12
\folder01\file01_03.txt 12
\folder02\file02_01.txt 15
\folder02\file02_01.txt 14
\folder03\file03_01.txt 11
\folder03\file03_02.txt 15
\folder03\file03_03.txt 13
\folder03\file03_04.txt 12

\ 之前,没有斜线,或者 .\ 都可以。

最佳答案

给你:

$srcpth = "C:\Users\Mark\Desktop\dummy\"
$files = Get-ChildItem -Path $srcpth -File -Recurse

foreach ($f in $files) {
$filen = $f.Name
$filesize = $f.Length
$relativePath = $f.fullname.remove(0,($srcpth.length))
Write-Output "$filen $filesize $relativePath"
}

没有任何对象属性具有您要查找的值。但是你可以像上面那样计算它。当您试图弄清楚这样的事情时,查看对象的成员总是有用的:

$files[0] | get-member

这将使您更好地了解可以使用什么、可以使用哪些属性以及可以使用哪些方法。

关于windows - 如何递归文件夹并显示相对文件夹路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72623579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com