dirコマンドで更新日時の秒まで表示する。
ファイルシステムの更新日時は秒まであるのに、dirコマンドは分まで。:-(
仕方がないので、FSOかShellを使います。
fdir [ファイルまたはディレクトリ...]
@if(0)==(0) ECHO OFF
setlocal
set x=%*
if not defined x set x=*
FOR %%I IN (%x%) DO FOR /F "delims=" %%J IN ('CScript.exe //NoLogo //E:JScript %0 "%%~fI"') DO ECHO %%~aI %%J
GOTO :EOF
@end
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(WScript.Arguments.Item(0))){
var File=fso.GetFile(WScript.Arguments.Item(0));
WScript.Echo(File.DateLastModified,File.Size,File.Name);
}
else if(fso.FolderExists(WScript.Arguments.Item(0))){
var Folder=fso.GetFolder(WScript.Arguments.Item(0));
WScript.Echo(Folder.DateLastModified,Folder.Size,Folder.Name);
}
sdir [ファイルまたはディレクトリ...]
@if(0)==(0) ECHO OFF
setlocal
set x=%*
if not defined x set x=*
FOR %%I IN (%x%) DO FOR /F "delims=" %%J IN ('CScript.exe //NoLogo //E:JScript %0 "%%~dpI" "%%~nxI"') DO ECHO %%~aI %%J
GOTO :EOF
@end
var Shell=new ActiveXObject('Shell.Application');
var Folder=Shell.NameSpace(WScript.Arguments.Item(0));
var FolderItem=Folder.Items().Item(WScript.Arguments.Item(1));
WScript.Echo(FolderItem.ModifyDate,FolderItem.Size,FolderItem.Name);
Shellだと、ディレクトリのサイズやショートカットの拡張子が出ません。
なのでFSOを推奨。