我可以在PowerShell中将多行string传递给svn吗?

我在脚本中有以下行:

svn propset svn:externals $newExternals $path

现在,第一次$newExternals是一个多行string(有几个svn:external属性), svn以一种似乎表明它不能处理该参数的方式向我咆哮。

我能否将多行string传递给我在PowerShell中调用的程序? 或者是svn不能parsing的问题? 或者我需要报价? (没有帮助,但我可能搞砸了别的东西。)


如果这不起作用,那么svn也会接受一个文件来读取这些东西:

svn propset svn:externals -F externals.txt $path

然而,这似乎失败,因为svn预计externals.txt是一个ASCII文件(或UTF-8,我不知道,但我不认为这是相关的),而PowerShell默认情况下写入UTF-16。 那么将某些东西转换成ASCII文件的规范方法是什么?


作为一个侧面的问题:什么是规范的方式来创build一个临时文件的path?

[io.path] :: GetTempFileName()将返回一个临时文件名(包括path)

我不太熟悉svn ,所以如果以下几点不相关的话,请原谅我… …但是可以将多行string传递到Powershell或Powershell调用的程序(假定调用的程序支持它)。

从Technet的Windows PowerShell本周提示,这里有一个特别喜欢的方法 。 (Powershell'Here-Strings`)。

还有另外一个来自SO的答案 ,尽pipe我不知道这是否可以与被调用的程序一起工作,只是它在PowerShell中本地工作。

最后,string(所有types)也可以延伸到一行之外:

 'Foo bar' 

如果两种技术都不起作用,我会说你遇到了svn的限制。

在Windows上,可以使用系统variablesTEMP或TMPfind用户临时文件夹。

 [Batch] echo %TEMP% echo %TMP% [Powershell] echo $env.temp echo $env.tmp