[powershell] 스크립트 테스트를 위해 PowerShell에서 에코에 해당

플래그를 설정하고 스크립트 전체에서 데이터가 일치하는 것을 확인하여 PowerShell 스크립트 에서 변수 및 값을 출력하고 싶습니다 .

어떻게해야합니까?

예를 들어 다음 PHP 코드와 동등한 PowerShell은 무엇입니까?

echo "filesizecounter: " . $filesizecounter 



답변

몇 가지 방법이 있습니다.

Write-Host: 기능 / cmdlet 출력에 포함되지 않은 콘솔에 직접 작성하십시오. 전경색과 배경색을 설정할 수 있습니다.

Write-Debug: $DebugPreference계속 또는 중지로 설정 한 경우 콘솔에 직접 씁니다 .

Write-Verbose: $VerbosePreference계속 또는 중지로 설정 한 경우 콘솔에 직접 씁니다 .

후자는 Write-Debug디버깅을 위한 추가 옵션 정보를 위한 것입니다 (이 경우에는 적합 할 것입니다).

추가 :에서 PSH2 (적어도) 스크립트를 사용하여 cmdlet를 자동으로 얻을 것이다 바인딩 -Verbose-Debug로컬 수 있도록 스위치 매개 변수 Write-VerboseWrite-Debug컴파일 된 cmdlet 및 공급자가대로 (즉,이 환경 변수를 무시).


답변

Powershell에는에 대한 별칭 매핑 에코가 있습니다 Write-Output.

echo "filesizecounter : $filesizecounter"


답변

PowerShell이 ​​보간하지 않습니까?

PHP에서

echo "filesizecounter: " . $filesizecounter 

다음과 같이 쓸 수도 있습니다 :

echo "filesizecounter: $filesizecounter" 

PowerShell에서 다음과 같은 것이 필요에 맞아야합니다.

Write-Host "filesizecounter: $filesizecounter"


답변

Write-Host "filesizecounter : " $filesizecounter 


답변

Powershell에서 에코하는 가장 쉬운 방법은 문자열 객체를 만들고 파이프 라인에서 출력하는 것입니다.

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

물론 Write- * 메서드를 사용하지 않을 때는 약간의 유연성을 포기해야합니다.


답변

echo는 Write-Host 와 동일하지만 Write-Output의 별명 입니다.

그것은되지 PowerShell의 에코 및 쓰기 호스트 사이의 차이는 무엇입니까? .

echo는 쓰기 출력의 별명이며 성공 출력 스트림에 기록합니다. 이를 통해 파이프 라인을 통해 출력을 처리하거나 파일로 리디렉션 할 수 있습니다. Write-Host는 콘솔에 직접 쓰므로 더 이상 출력을 리디렉션 / 처리 할 수 ​​없습니다.


답변

쓰기 호스트가 제대로 작동합니다.

$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";