一回も実行してないからまともに動くかどうか知らん
setlocal enableextensions enabledelayedexpansion
set d=%date:~-10,4%%date:~-5,2%%date:~-2,2%
casinfo>%d%.log
for /f "usebackq delims=" %%i in ("%d%.log") do (
set t=%%i
if "!t:~0,14!"=="bcas_card_id: " set bcasid=!t:~14!
)
if defined bcasid ren "%d%.log" "%bcasid%_%d%.log"
せめて一回ぐらいは実行しろよw
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("casinfo.exe");
var input = "";
while (!oExec.StdOut.AtEndOfStream){
var line = oExec.StdOut.ReadLine();
if(line.indexOf("bcas_card_id:") == 0){
var bcas_card_id = line.substr(14);
//WScript.Echo(bcas_card_id);
}
input += line + '\n';
}
WScript.Echo(input);
var _today = new Date().toUTCString();
_today.match(/(\w*), (\d+) (\w{3}) (\d{4}) .*/)
objFS = new ActiveXObject("Scripting.FileSystemObject");
objFile = objFS.CreateTextFile("casinfo_" + bcas_card_id + "_" + RegExp.$4 + '-' + RegExp.$3 + '-' + RegExp.$2 + ".log", true);
objFile.Write(input);
やっぱ自分でも書いてみた。久しぶりだなぁ。
rem @echo off
casinfo > casinfo.tmp
setlocal
for /f "usebackq tokens=*" %%i in (`find "bcas_card_id" casinfo.tmp`) do set CASID=%%i
set time2=%time: =0%
set time3=%time2::=%
set time4=%time3:.=%
set FILENAME=casinfo_%date:~-10,4%%date:~-5,2%%date:~-2,2%%time4%_%CASID:~-11,11%.log
ren casinfo.tmp %FILENAME%
ちなみにリネームせずにメモリ上で処理しようとしてみたけど単純なbatだと無理っぽかったぜ。
うまくやったらできるのかも知れないけど。
>>511 中身JScriptの無理やりバッチ
自分自身をスクリプトとして実行する
>>509の先頭に以下4行付けてバッチとして保存実行
@if(0)==(0) echo off
cscript //nologo //E:JScript "%~f0"
goto :eof
@end