gpt4 book ai didi

powershell - 获取文件夹中所有文件夹、子文件夹和文件的相对路径

转载 作者:行者123 更新时间:2023-12-03 18:54:27 25 4
gpt4 key购买 nike

我有一个名为source 的文件夹。它的结构如下。

source\a.jpg
source\b.jpg
source\c.xml
source\d.ps1
source\subdir1\a.xml
source\subdir2\b.png
source\subdir3\subsubdir1\nothing.img

我想在文本文件中列出文件夹、子文件夹和文件的所有相对路径,比如 out.txt。对于上面的输出,我期望的是:

source\a.jpg
source\b.jpg
source\c.xml
source\d.ps1
source\subdir1\a.xml
source\subdir2\b.png
source\subdir3\subsubdir1\nothing.img
source\subdir1
source\subdir2
source\subdir3
source\subdir3\subsubdir1

您可以看到输出也包括单独的文件夹和子文件夹。

注意:我在源文件夹外的文件夹中。我的意思是,例如我在包含源文件夹的 fold 文件夹中 -> fold/source 但如果您的解决方案包括将脚本放在源文件夹中,那也很好。两种解决方案都很好。这可能很容易,但我不熟悉 powershell,但如果给定,至少可以从中运行脚本。

EDIT1: 好的,在“重复问题”中,答案是针对单个文件的相对路径。但我也想要文件夹和子文件夹。

EDIT2: 好的,我写了一个命令:

(gci -path source -recurse *.|Resolve-path -relative) -replace "","" | out-file -FilePath output.txt -Encoding ascii

现在,这个命令给我源内唯一子目录的相对名称(在我的实际源文件夹中具有不同的名称;源显然是一个虚拟名称!)。我应该在此代码中更改什么以获取源中子目录中文件的其他名称。

最佳答案

这是干净的一行答案,我没有写循环,完美地完成了工作。我是靠运气“玩”了一下才制作出来的。

(gci -Path source -Recurse *.*|Resolve-Path -Relative) -replace "\.","" |
Out-File -FilePath output.txt -Encoding ascii

关于powershell - 获取文件夹中所有文件夹、子文件夹和文件的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471988/

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