2011-08-22 9 views
1

バッチファイルのバッテリー状態を確認する方法、つまりラップトップがバッテリーで動作している場合にスクリプトの実行を停止する方法を見つけようとしています。私はpoercfgコマンドを試していますが、結果は表示されません。バッチファイルのバッテリステータスを確認しますか?

私に必要なのはそのようなものの、バッチファイルで何かです:

#!/bin/bash 
if [ acpi -a | grep "off-line" eq 0 ]; 
    then echo "plug your laptop and run it again" 
    exit 1 
fi 

私は何を使用することができますか?

+0

によって参照ロブのスクリプトからWMICクエリを盗まれている、あなたはどのようなOSをオンになっていますか?あなたはWindowsの事であるタイトルの中に "バッチファイル"と言って、通常はLinuxの事であるbashの例を持っています。あなたは正確な答えを得るためにいくつかの手がかりを提供する必要があります! – Caleb

+0

私はWindowsマシンでこれを必要としています – kerio

+0

@kerio:次に質問は* [タグ:bash]ではありません。私はそのタグを削除します。私が間違っているとそれを戻してください。 –

答えて

0

Rob Vanderwoude's scriptのようなものが動作する可能性があります。予想どおり、それ以上の作業です。いくつかのWMI情報を使用しているようです。

#!/bin/bash 
if grep -q discharging /proc/acpi/battery/BAT0/state; then 
    echo "plug your laptop and run it again" 
    exit 1 
fi 
+0

彼は "bash"とタグ付けしていて、bashスクリプトでアイデアを出しているので、WMIを使うのは難しいです... – carlpett

+0

@carlpett:OPには "バッチファイル"というタイトルが付けられています。 Cygwin? – Caleb

+1

@carlpeet最後の行を読んでください: '' '私が必要とするのはバッチファイルのようなものです:' ''彼はバッチファイルで何かしたいと思っていることを伝えています。 –

2

あなたは、Linux上にある場合は、/procからこの情報を入手できますか? grepの最後の復帰ステータスを取得します。 これはあなたのために働くと思います。

#!/bin/bash 
acpi -a | grep "off-line" 
if [ $? -eq 0 ]; 
    then echo "plug your laptop and run it again" 
    exit 1 
fi 
+0

私のラップトップでは、パスは/ sys/class/power_supply /です。通常は2つのサブフォルダがありますが(名前は異なるかもしれません)、 'type'という名前のファイルは" Mains "または" Battery "のいずれかとなります。あなたが接続されていれば、Mainsタイプのディレクトリの 'online'ファイルは1です。しかし、私のデスクトップは、メインとUPSの"バッテリー "(私のXFCEデスクトップがステータスを表示しています) 3番目の方法が必要です。 – unhammer

0

あなたは$を使用することができます

0

ここにそれが行く:

@echo off 
wmic Path Win32_Battery Get BatteryStatus | find "2" > nul 
if %errorlevel% neq 0 (
    echo Not running on AC, exiting 
    exit /B 
) 
echo running on AC, continuing execution 

私はCaley

+0

この情報はイベントに存在するため、タスクスケジューラで使用できます。私はバッテリー電源で私に電子メールを送る。 – Arthor

+0

@Arthorいいえ、イベントログに記録されていません。しかし、あなたがそれを検索すれば、かなりの回避策/ powershell/vbsコードが見つかるでしょう – wmz

+0

私はありがとうございます。私は最終的にバッチを作りました。 – Arthor

関連する問題