如何在Windows中使用花括号路径名?

时间:2019-02-14 15:18:02

标签: windows powershell

我曾经在Linux中使用类似ls {path1,path2}/*这样的路径,但是在Windows PowerShell中,却遇到了以下错误

At line:1 char:10
+ ls {path1,path2}/*
+          ~
Missing argument in parameter list.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingArgument

我尝试使用dir {path1,path2}/*而不是ls {path1,path2}/*,但是抛出了同样的错误!

2 个答案:

答案 0 :(得分:1)

我想你想要的是

LoginService

Path1和Path2将需要是变量或带引号的字符串。

这是一个例子

ls path1,path2 -recurse

我知道这可能很疯狂,但是您可以创建一个几乎可以复制您要执行的操作的函数:

PS C:\> ls "c:\temp\test1","c:\temp\test2" -recurse


    Directory: C:\temp\test1


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019  10:29 AM                test1subdir


    Directory: C:\temp\test1\test1subdir


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/14/2019  10:29 AM             13 test1file.txt


    Directory: C:\temp\test2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/14/2019  10:30 AM              6 test2file.log

答案 1 :(得分:1)

对于您正在使用的环境,您应该使用正确的cmdlet / alias(在Linux PowerShell Core @Bean(name="DataFileServlet") public HttpRequestHandler dataFileServlet() { return (request, response) -> { // Handler implementation }; } 上指的是系统ls,而不是PoSh gci)

PowerShell允许在多个级别上wildcards ls(和范围*?),因此应该这样做:

[0-2]

如果路径的一部分完全不同,则必须提供一个数组:

Get-ChildItem -Path some\verbose[12]\dir\* -Include *.ext1,*.ext2