2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 「別のユーザーとして実行」して「管理者として実行」する。 | トップページ | リモートshellもどき実験 »

2010年1月17日 (日)

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を推奨。

« 「別のユーザーとして実行」して「管理者として実行」する。 | トップページ | リモートshellもどき実験 »