PowerShell에서 여러 줄 문자열을 svn에 전달할 수 있나요?

PowerShell에서 여러 줄 문자열을 svn에 전달할 수 있나요?

스크립트에 다음 줄이 있습니다.

svn propset svn:externals $newExternals $path

이제 처음으로 $newExternals여러 줄로 된 문자열(여러 svn:external속성이 있음)이 나타나 svn인수를 처리할 수 없음을 나타내는 듯한 방식으로 나에게 짖습니다.

PowerShell에서 호출하는 프로그램에 여러 줄 문자열을 전달할 수 없나요?svn아니면 그것을 분석할 수 없어서 문제가 되는 걸까요 ? 아니면 견적이 필요합니까? (도움이 되지는 않았지만 다른 것을 망쳤을 수도 있습니다.)


이것이 작동하지 않으면 다음 svn에서 내용을 읽을 파일도 허용합니다.

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

그러나 이는 ASCII 파일(또는 UTF-8, 확실하지 않지만 여기서는 관련이 없다고 생각함)이 될 것으로 svn예상 하고 PowerShell은 기본적으로 UTF-16을 작성하기 때문에 실패한 것 같습니다 . externals.txt그렇다면 무언가를 ASCII 파일로 파이프하는 표준적인 방법은 무엇입니까?


부가 질문으로: 임시 파일을 생성할 경로를 얻는 정식 방법은 무엇입니까?

답변1

[io.path]::GetTempFileName()은 임시 파일 이름(경로 포함)을 반환합니다.

답변2

저는 에 익숙하지 않으므로 svn다음 사항이 관련이 없다면 실례합니다... 하지만 여러 줄 문자열을 Powershell 또는 Powershell 호출 프로그램(호출된 프로그램이 지원한다고 가정)에 확실히 전달할 수 있습니다.

Technet Windows Powershell 금주의 팁에서 제가 특히 좋아하는 한 가지 방법을 소개합니다.. (Powershell 'Here-Strings').

그리고 SO 답변의 또 다른 내용이 있습니다., 이것이 호출된 프로그램에서 작동할지 모르겠지만... 단지 PowerShell에서 기본적으로 작동한다는 것뿐입니다.

마지막으로 문자열(모든 종류)은 한 줄 이상으로 확장될 수도 있습니다.

'Foo
bar'

두 기술 모두 작동하지 않으면 svn.

답변3

Windows에서는 시스템 변수 TEMP 또는 TMP를 사용하여 사용자 임시 폴더를 찾을 수 있습니다.

[Batch]
echo %TEMP%
echo %TMP%

[Powershell]
echo $env.temp
echo $env.tmp

관련 정보