将子目录中的某些文件和其他文件的相对路径复制到文本文件中

时间:2015-05-07 10:30:39

标签: powershell cmd relative-path

我有一个名为来源的文件夹。它有一些jpeg文件和一些包含更多jpeg文件的子目录。我想复制文本文档" test.txt"中子目录中所有文件和其他文件的相对路径。例如,
我有文件,

a.jpg
b.jpg
c.jpg

和子目录

sub1/d.jpg
sub2/e.jpg

我想复制所有这些相对于我所在的当前文件夹的相对路径(仅在外部来源)

我想要的输出是:

source/a.jpg
source/b.jpg
source/c.jpg
source/sub1/d.jpg
source/sub2/e.jpg

3 个答案:

答案 0 :(得分:2)

可能有一个更短的方式(特别是两个替换),但这应该有所帮助:

从源文件夹中:

(gci -recurse *.jpg|Resolve-path -relative) -replace "\\","/" -replace "[.]/","source/" > test.txt

从包含源文件夹的文件夹:

(gci -recurse "source\*.jpg"|Resolve-path -relative) -replace "\\","/" -replace "[.]/","" > test.txt

gciGet-ChildItem

的别名

答案 1 :(得分:1)

对于那些人来说,Ocaso Protal的回答(它应该得到正确的复选标记,因为它确实是正确的)并不起作用(虽然它应该,但对我来说没有,所以我把它调整了一下这是我的调整版本。

(gci -path source -recurse *.jpg|Resolve-path -relative) -replace "\\","/" -replace "[.]/","source/" > test.txt

答案 2 :(得分:0)

如果路径分隔符不是必需的,只是针对问题中的cmd标记,您可以直接使用它,但路径分隔符将是反斜杠,而不是斜杠

xcopy /l /s "source\*" "%temp%" | find "\" > test.txt

已修改以适应评论

我不确定这不是一种失常(powershell不是我的区域),但是......

xcopy /l /s "source\*" "%temp%" | find "\" | powershell -c "$input -replace '\\','/'" > test.txt
相关问题