2017-07-28 81 views
0

我试图将满足给定的一组条件的文件从一个文件夹复制到另一个文件夹。从this answer,我发现可以使用-Include声明。如何包括使用具有多个条件的变量

我的问题是,我需要的标准是用户指定(通过变量),并可能包含多个条件。即,我尝试执行以下操作:

# THIS WORKS FINE 
$includeFiles = "*tests.jar" 
Copy-Item "from/path" "to/path" -Include $includeFiles 

# THIS RETURNS NOTHING 
$includeFiles = "*tests.jar, other.jar" 
Copy-Item "from/path" "to/path" -Include $includeFiles 

如何解决此问题?是否有可能使变量“destring”,使用另一种语法或类似的?

回答

2
# THIS WORKS FINE 
$copyPattern = "*tests.jar", "other.jar" 
Copy-Item "from/path" "to/path" -Include $copyPattern 

的一点是,该参数是-Include一个字符串数组,每个字符串为包括图案。您编写它的方式需要文件名中包含逗号和空格。所以,除非你有这样的文件,否则什么都不会包括在内。

如果你是积极的,该模式将永远不会有逗号,你宁愿只拥有一个字符串,当然你也可以将其转换为一个数组:

$copyPatterns = "*tests.jar, other.jar" -split ', ' 

注意,解析的工作方式不同的参数到命令,这就是为什么以下工作以及:

Copy-Item from/path to/path -Include *tests.jar,other.jar 
+0

很好的答案!在我的场景中,输入变量必须是单个字符串,但在使用它之前拆分该字符串以包含很好。谢谢! –