2017-02-23 8 views
0

Powershell(PS)の初心者として、CMDから起動された現在のバッチファイルでPowershellを使用して、および現在のディレクトリ内のサブフォルダ内のファイルを除くすべてのファイルの数です。Powershellをバッチファイルで使用して現在のディレクトリの合計サイズとカウントを取得するときのエラー

また、このタスクはバッチファイルの途中に組み込まれます。つまり、PSはこのタスクにのみ使用され、残りはCMD上で実行されます。最終的に、このタスクの結果をテキストファイルにエクスポートしたいと思います。ここで

は、バッチファイルでの私の試みです:

start powershell.exe -noexit ($colitems = Get-ChildItem | Measure-Object Length -Sum) 
" Total size: "+ "{0:N2}" -f ($colitems.sum/1MB) + " MB, and" + $colitems.count + " total files" 

残念ながら、プロセスはエラーを取得します。

'Measure-Object' is not recognized as an internal or external command, operable program or batch file.

あなたが問題を解決するために何かアドバイスがありましたら、私に知らせてください。前もって感謝します!

答えて

0

パイプ(|)は、「パイプの右側のコマンドにコマンドの結果を出力する」ためです。そしてそれは他のコマンドよりも高い優先度を持っています。

-noexitは、スクリプト内の残りのコマンドをpowershellコマンドとして実行しません。 1つのファイルでcombine both batch and powershellにしたい場合は、これを試すことができます:

<# : batch portion 
@echo off & setlocal 

(for %%I in ("%~f0";%*) do @echo(%%~I) |^
powershell -noprofile "$argv = $input | ?{$_}; iex (${%~f0} | out-string)" 

goto :EOF 
: end batch/begin powershell #> 

($colitems = Get-ChildItem | Measure-Object Length -Sum) 
" Total size: "+ "{0:N2}" -f ($colitems.sum/1MB) + " MB, and" + $colitems.count + " total files" 
関連する問題