该字符串缺少终结符:'。在WindowsServerCore容器中

时间:2018-04-02 18:02:57

标签: powershell docker

我在用于构建.NET项目的windowsservercore:10.0.14393.206映像中运行脚本时出现问题。我需要使用Powershell脚本手动将一些.dll文件的位置从包更改为Web / Bin但是我收到错误:

The string is missing the terminator: '.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordEx
   ception
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

脚本如下:

$srcdir = "packages";
$destdir = "Web\Bin";
md $destdir;
$files = (Get-ChildItem $srcdir -Recurse -Include *.dll*, *.lic*);
$files|foreach($_){
   echo $_.Fullname;
   Copy-Item -Path $_.Fullname -Destination ("$destdir" + "\" + "$_.Name") -Recurse;
}

任何有关此事的想法?

1 个答案:

答案 0 :(得分:1)

这里有一些问题。首先,使用Join-Path构建路径比尝试自己构建路径要好得多。其次,在构建路径时,不需要在任何变量周围加上双引号。第三,如果你打算使用不需要的双引号,你需要$ _.Name周围的$()来强制访问该属性而不是对象的.TOString()函数。以下是另一种方法:

Copy-Item -Path $_.Fullname -Destination (Join-Path $destdir $_.Name) -Recurse;