ヒヤドキュメント内でサブルーチンを呼び出す
めもめも。
print <<EOM; @{[&test]} EOM exit(0); sub test{ print "てすと"; return("てすてす"); }
DOSコマンドで指定曜日に処理を行う
やはり、自分の探し方が悪いのか情報が見あたらなかったので情報を共有します。
なお、DOSの%DATE%変数の代入値は「地域と言語のオプション」の設定により変わります。
下の例では、“短い形式”が“yyyy/MM/dd”となっている事を仮定している点に注意してください。
@ECHO OFFSET 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%) %% 7REM 日曜日:0...土曜日:7
if %WEEK% == 0 (
GOTO nichiyoubi
)
GOTO end:nichiyoubi
ECHO 日曜日です:end
ECHO おしまい
NULの使い方いろいろ
空のテキストファイルを生成します。
type nul>C:\null.txt
標準エラー結果だけすっ飛ばします。
dir /b /a 1>C:\dirlist.txt 2>nul
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 OFFif %~z1 == 0 goto zeromessage
if not %~z1 == 0 goto message:zeromessage
echo ファイルは ゼロ バイト です
goto end:message
echo ファイルは %~z1バイト です
goto end:end
echo おしまい