2011-06-29 31 views
3

我已经有一个显示按文件类型排列的文件夹中的文件列表中选择一个批处理文件,图像文件:需要一个批处理文件,列出与尺寸

dir /b /o:gen>filelisting.txt 

我想作一个.bat文件这也将显示图像的宽度和高度。有没有人有代码可以做到这一点,或比我能更好地理解这种类型的编程?

+0

这不是你可以用简单的批处理文件做的事情。您需要一些其他程序来读取图像信息。 – Brad

回答

1

尝试将其保存为xxx.bat;

Dim oDir: Set oDir = CreateObject("Shell.Application").Namespace(Wscript.Arguments.Item(0)) 
For Each oFile In oDir.Items 
    wscript.echo oFile & " " & replace(oDir.GetDetailsOf(oFile,26), "x", "") 
Next 
从命令行

然后:

cscript c:\xxx.vbs "C:\whatever\My Pictures" 

对我来说,产生;

a926_thumb 180 180 
abstract1 2197 1374 
backscreen 1024 1024 
burgin_small 207 205 

其中第一个数字是宽度&第二个高度。

+0

对我来说,它仍然只显示文件。我也不得不把它保存为一个vbs文件而不是一个很好的bat文件 – WPAflight

2

这里有一个tooltipInfo.bat(JScript中\蝙蝠混合体,它可以作为一个.bat),其采用了文件tooptip信息,并且不需要任何外部软件:如果对图片使用

@if (@X)==(@Y) @end /* JScript comment 
    @echo off 

    rem :: the first argument is the script name as it will be used for proper help message 
    cscript //E:JScript //nologo "%~f0" %* 

    exit /b %errorlevel% 

@if (@X)==(@Y) @end JScript comment */ 

////// 
FSOObj = new ActiveXObject("Scripting.FileSystemObject"); 
var ARGS = WScript.Arguments; 
if (ARGS.Length < 1) { 
WScript.Echo("No file passed"); 
WScript.Quit(1); 
} 
var filename=ARGS.Item(0); 
var objShell=new ActiveXObject("Shell.Application"); 
///// 


//fso 
ExistsItem = function (path) { 
    return FSOObj.FolderExists(path)||FSOObj.FileExists(path); 
} 

getFullPath = function (path) { 
    return FSOObj.GetAbsolutePathName(path); 
} 
// 

//paths 
getParent = function(path){ 
    var splitted=path.split("\\"); 
    var result=""; 
    for (var s=0;s<splitted.length-1;s++){ 
     if (s==0) { 
      result=splitted[s]; 
     } else { 
      result=result+"\\"+splitted[s]; 
     } 
    } 
    return result; 
} 


getName = function(path){ 
    var splitted=path.split("\\"); 
    return splitted[splitted.length-1]; 
} 
// 

function main(){ 
    if (!ExistsItem(filename)) { 
     WScript.Echo(filename + " does not exist"); 
     WScript.Quit(2); 
    } 
    var fullFilename=getFullPath(filename); 
    var namespace=getParent(fullFilename); 
    var name=getName(fullFilename); 
    var objFolder=objShell.NameSpace(namespace); 
    var objItem=objFolder.ParseName(name); 
    //https://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx 
    WScript.Echo(fullFilename + " : "); 
    WScript.Echo(objFolder.GetDetailsOf(objItem,-1)); 

} 

main(); 

输出:

C:\TEST.PNG : 
Item type: PNG image 
Dimensions: ?871 x 836? 
Size: 63.8 KB 

,所以你可以:

for %%# in (*.jpg *.png *.tiff *.gif *.bmp) do (
    echo %%# 
    for /f "delims=? tokens=2" %%a in ('toolTipInfo.bat "%%~#" ^|find "Dimensions:"') do echo %%a 
) 

imgInfo.bat

相关问题