DOSコマンドで指定曜日に処理を行う

やはり、自分の探し方が悪いのか情報が見あたらなかったので情報を共有します。
なお、DOSの%DATE%変数の代入値は「地域と言語のオプション」の設定により変わります。
下の例では、“短い形式”が“yyyy/MM/dd”となっている事を仮定している点に注意してください。


@ECHO OFF

SET YEAR=%DATE:~0,4%
SET MONTH=%DATE:~5,2%
SET DAY=%DATE:~8,2%

if %MONTH% == 1 (
SET /A YEAR=%YEAR% - 1
SET /A MONTH=%MONTH% + 12
)
if %MONTH% == 2 (
SET /A YEAR=%YEAR% - 1
SET /A MONTH=%MONTH% + 12
)
SET /A WEEK=(%YEAR% / 4 - %YEAR% / 100 + %YEAR% / 400 + (13 * %MONTH% + 8) / 5 + %DAY%) %% 7

REM 日曜日:0...土曜日:7
if %WEEK% == 0 (
GOTO nichiyoubi
)
GOTO end

:nichiyoubi
ECHO 日曜日です

:end
ECHO おしまい

7-Zipコマンドラインでいろいろ

めもめも。

testディレクトリをtest.zipアーカイブに圧縮


7z.exe a test.zip test

testディレクトリを書庫形式にZIPを使ってtest.zipアーカイブに圧縮


7z.exe a -tzip test.zip test
1つ上のコマンドと意味はいっしょ

test.zipアーカイブをtest_zipディレクトリに展開


7z.exe x test.zip -otest_zip
-oオプション使わないと、test.zipがあるカレントディレクトリに展開されます

testディレクトリを1GB毎に区切ってtest.zipアーカイブに圧縮


7z.exe a test.zip test -v1g
結果として1GB単位にtest.zip.001 test.zip.002 ...とファイルが作成されます

test.zip.001 test.zip.002 ...アーカイブをtest_zipディレクトリに展開


7z.exe x test.zip.001 -otest_zip
最初の.001を選べば、それに続く連番ファイルを自動的に連結し、展開します

コマンドプロンプトからUTF-8キャラクターコードのファイルを生成する


chcp 65001|echo UTF-8文字を書き出す>C:\utf8text.txt


こんな使い方もできます。
以下はShift-JIS以外のいわゆるUNICODE文字を含むファイルリストをリダイレクトします。


chcp 65001|dir /B /A>C:\utf8list.txt


ちなみに書き出されるUTF-8はBOM無しです。

ESET Smart Securityでコマンドラインからファイルを検査する

ESET Smart Securityで、コマンドラインからウイルスとワームを検査する方法です。
駆除はしてくれないので注意してください。
(正確に書くと、ZIP等でアーカイブされたファイルが駆除できませんでした。やり方が悪いだけ?)


また、試していないので分かりませんが、アドウェアスパイウェア等に該当するソフトウェアも検出してくれないと思います。


以下のバッチファイルは、引数としてチェックしたいファイルを1つだけ指定すると、そのファイルを検査して結果を教えてくれます。



@echo off

"C:\Program Files\ESET\ESET Smart Security\ecls.exe" /files %1

if %ERRORLEVEL%==0 (
exit
)

if %ERRORLEVEL%==1 (
echo 脅威が検出されたが駆除済み
echo return=%ERRORLEVEL%
)

if %ERRORLEVEL%==10 (
echo スキャン不能なファイルが存在
echo return=%ERRORLEVEL%
)

if %ERRORLEVEL%==50 (
echo 脅威検出
echo return=%ERRORLEVEL%
)

if %ERRORLEVEL%==100 (
echo エラー
echo return=%ERRORLEVEL%
)

echo 脅威を検出しました。該当ファイルを削除してください。

pause

DOSコマンド上でファイルサイズ取得し、処理を振り分ける

自分の探し方が悪いのか、あまり情報がなかったので知識共有します。


@ECHO OFF

if %~z1 == 0 goto zeromessage
if not %~z1 == 0 goto message

:zeromessage
echo ファイルは ゼロ バイト です
goto end

:message
echo ファイルは %~z1バイト です
goto end

:end
echo おしまい