스크립트에 다음 줄이 있습니다.
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