带有文件输入的命令行的Typescript不适用于path中的空格

时间:2015-08-03 13:00:36

标签: file powershell command-line typescript

我有一个PowerShell脚本,其工作方式如下:

  1. 通过路径进行迭代
  2. 查找此路径中的所有TypeScript文件
  3. 在temp.txt中写下这些文件的路径
  4. 通过命令行调用TypeScript编译器 - > tsc,temp.txt作为输入
  5. 安装的TypeScript版本为1.4。

    看起来像这样:

    Set-Location $PSScriptRoot
    $fileName = "temp.txt"
    Get-ChildItem -Path "D:\Visual Studio 2013\Projects\ABC\main\DEF" -Include *.ts -Exclude jasmine -Recurse | foreach {$_.FullName | Out-File -filePath $fileName -Append}
    tsc @$fileName --module amd
    

    只要迭代的路径不包含空格,脚本就可以工作 在我的例子中,路径确实包含空格(参见:.. \ Visual Studio 2013 ...)因此,temp.txt中的打字稿文件的路径也包含空格。

    是否有可能在temp.txt中编写路径,以便typescript编译器可以实际解析它们,即使它们包含空格?

    移动项目不是理想的选择。

1 个答案:

答案 0 :(得分:1)

似乎在

$_.Fullname
添加引号就可以了。
Set-Location $PSScriptRoot 
$fileName = "temp.txt"
Get-ChildItem -Path "D:\Visual Studio 2013\Projects\ABC\main\DEF" -Include *.ts -Exclude jasmine  -Recurse | foreach {'"'$_.FullName'"' | Out-File -filePath $fileName -Append}
tsc @$fileName --module amd