ハードディスクの空き容量が少なくなったときに通知する通知が必要です。私はWindows 7 Professionalを使用しています。クイックバッチファイルでこれを処理できると思います。私はそれを1日1回実行するようにスケジュールを設定します。これは今まで私が持っているものです:DOSバッチスクリプトで残りのハードディスク領域を確認する。 IF条件が動作しない
これは、 "dir"コマンドと "find"コマンドを使用して残りのディスクスペースを見つけます。 Var1に値を格納します。 (これは私のために働く)
@echo off
FOR /F "tokens=*" %%i in ('dir ^| find "free"') do SET WinVer=%%i
FOR /F "tokens=1-3 delims=]-" %%A IN ("%WinVer%") DO (
SET Var1=%%A
)
これは、結果から数値を取り出し、カンマを削除します。結果は、引用符なし「111222333444」のようになります。(これは私のために動作します)
set Var1=%Var1:~10,15%
set Var1=%Var1:,=%
このチェックをVAR1の値未満100ギガバイト(私の仮説的なディスクスペースの床)である場合。もしそうなら、私はある時点で "lowSpace.txt"というファイルを作成します。 (これは私のためには機能しません)
if %Var1% leq 100000000000 dir > lowSpace.txt
この "if"文が私に問題を引き起こしています。私の空きディスク容量は約150 GB(または150000000000)なので、if条件は失敗し、 "dir> lowSpace.txt"は実行されてはいけませんが、とにかく実行されます。
私は500000000000から100000000000の声明「場合」私は期待どおり、ファイル「lowSpace.txt」が作成されます。中に定数を大きくした場合
また、定数を100000000000から500000000000に再増加させ、条件を "leq"から "geq"に変更すると、作成されないと予想されるときに "lowSpace.txt"というファイルが作成されます。
私の番号が間違っていますか?または、私の「if」声明に何か間違っていますか?このコードでは、150 GBを100 GB以上と100 GB未満の両方と見なしているようです。 100ギガバイトは、私の本当のハードディスクの空き容量の床ではないことを
が@echo off
FOR /F "tokens=*" %%i in ('dir ^| find "free"') do SET WinVer=%%i
FOR /F "tokens=1-3 delims=]-" %%A IN ("%WinVer%") DO (
SET Var1=%%A
)
set Var1=%Var1:~10,15%
set Var1=%Var1:,=%
if %Var1% leq 100000000000 dir > lowSpace.txt
@echo on
@echo %Var1%
注:
は、ここに私の完全なスクリプトです。私は自分のコードをテストするためにその番号を使用しています。
自分の番号が大きすぎる可能性があることを認識していませんでした。私は別のルートをとって、1000で私の数を分割し、私のコードが働いた。ありがとう。 – user1214135