ワイヤレスマウス

マウス2つ買った。安い割にどちらも快適で困る。

PMQ-001は説明書が全くなく電池の入れ方がわからなかったが、以下に載っていたので分解しなくて済んだ。
http://store.shopping.yahoo.co.jp/akibaoo/4528483047757.html

サムネイル画像作成

Windowsの力を借りればいろんな種類のファイルのサムネイル画像を簡単に作ることができるのね。Officeとかソフトが入ってないと作れないと思うけど…。
あと、これも入れてます。
http://code.msdn.microsoft.com/WindowsAPICodePack

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

using Microsoft.WindowsAPICodePack.Shell;

namespace MkThumbs
{
    class MkThumbs
    {
        static void Main(string[] args)
        {
            string dir = args.Length < 1 ? "." : args[0];
            foreach (string file in Directory.GetFiles(dir))
            {
                string fullPath = Path.GetFullPath(file);
                using (ShellObject shObj = ShellObject.FromParsingName(fullPath))
                {
                    Bitmap bmp = shObj.Thumbnail.MediumBitmap;
                    bmp.MakeTransparent(Color.Black);
                    bmp.Save(fullPath + ".png", ImageFormat.Png);
                }
            }
        }
    }
}

thumbs

adosql.js

gist: 130016 - adosql.js

データベースに ADO で接続して SQL を実行できるコンソールスクリプトを作った。通常はデータベース付属のツールがインストールされていると思うので必要ないと思われます。

Microsoft Access にはこんな感じで接続する。接続文字列変えればいろんなデータベースに接続できる、きっと。

C:\Temp\db>cscript //nologo adosql.js -c "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=user.mdb"
? select ...

行頭「!」入力は、eval してその結果を表示する。

? !1 + 2
3

行頭「$」入力は、コマンド実行。

? $cmd /c dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:37    <DIR>          .
2009/06/15  17:37    <DIR>          ..
2009/06/15  16:58             5,499 adosql.js
               1 個のファイル               5,499 バイト
               2 個のディレクトリ   6,996,881,408 バイトの空き領域

「quit」で終了。

? quit

おまけ機能で Microsoft ODBC Desktop Database Drivers を簡単に使えるようにしてある。

引数にフォルダを指定した場合、そのフォルダのテキストファイルがテーブルとなる。

C:\Temp\db>cscript //nologo adosql.js .

この場合、テーブルがカレントフォルダの tbl1.csv ファイルとして作成される。

? create table tbl1.csv (name varchar, age integer)
? $cmd /c dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:43    <DIR>          .
2009/06/15  17:43    <DIR>          ..
2009/06/15  16:58             5,499 adosql.js
2009/06/15  17:43               115 schema.ini
2009/06/15  17:43                14 tbl1.csv
               3 個のファイル               5,628 バイト
               2 個のディレクトリ   6,996,881,408 バイトの空き領域

普通に SQL を発行できる。

? insert into tbl1.csv values('Taro', 28)
? select * from tbl1.csv
#>name,age
1>Taro,28

作成された tbl1.csv はこんなんなっている。普通の CSV ファイル。

? $cmd /c type tbl1.csv
"name","age"
"Taro",28

なんか schema.ini ファイルも作成されるが基本気にしない。

? $cmd /c type schema.ini
[tbl1.csv]
ColNameHeader=True
CharacterSet=932
Format=CSVDelimited
Col1=name Char Width 255
Col2=age Integer

schema.ini がなくてもそれなりに動作するので、既存の CSV ファイルも操作できるよ。

? $cmd /c echo f1,f2 > tbl9.csv
? $cmd /c echo boo, 256 >> tbl9.csv
? $cmd /c echo foo, 128 >> tbl9.csv
? select * from tbl9.csv where f1 = 'boo'
#>f1,f2
1>boo,256
? quit
C:\Temp\db>

引数に xls ファイルを指定した場合、そのファイルがデータベースになる感じ。

C:\Temp\db>cscript //nologo adosql.js db.xls
? $cmd /c dir db.xls
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:53             9,216 db.xls
               1 個のファイル               9,216 バイト
               0 個のディレクトリ   7,117,938,688 バイトの空き領域
? create table tbl2 (name varchar, age integer)
? insert into tbl2 values('Jiro', 24)
? select * from tbl2
#>name,age
1>Jiro,24
? update tbl2 set age = 25 where name = 'Jiro'
? select * from tbl2
#>name,age
1>Jiro,25

引数には mdb ファイルも指定できる。

C:\Temp\db>cscript //nologo adosql.js db3.mdb
C:\Temp\db\adosql.js(40, 5) Microsoft OLE DB Provider for ODBC Drivers: [Microso
ft][ODBC Microsoft Access Driver] ファイル '(不明)' が見つかりませんでした。

けど、ドライバは xls ファイルとは違い自動で mdb ファイルを作成してくれない。
なので、AdoDbUtil オブジェクトに createMdb() を定義してあるのでこれを使う。

C:\Temp\db>cscript //nologo adosql.js .
? !AdoDbUtil
[object Object]
? !AdoDbUtil.createMdb('db3.mdb')
? $cmd /c dir db3.mdb
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:55            65,536 db3.mdb
               1 個のファイル              65,536 バイト
               0 個のディレクトリ   6,996,807,680 バイトの空き領域
? exit
C:\Temp\db>cscript //nologo adosql.js db3.mdb
? create table tbl3 (name varchar, age integer)
? insert into tbl3 values('Taro', 28)
? insert into tbl3 values('Jiro', 25)
? insert into tbl3 values('Sabu', 21)
? delete from tbl3
? $cmd /c dir db3.mdb
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:58            77,824 db3.mdb
               1 個のファイル              77,824 バイト
               0 個のディレクトリ   6,996,791,296 バイトの空き領域
? quit

ついでに mdb を圧縮する compactMdb() も定義してある。

C:\Temp\db>cscript //nologo adosql.js .
? !AdoDbUtil.compactMdb('db3.mdb')
? $cmd /c dir db3.mdb
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 4C18-D6C3 です

 C:\Temp\db のディレクトリ

2009/06/15  17:59            73,728 db3.mdb
               1 個のファイル              73,728 バイト
               0 個のディレクトリ   6,996,795,392 バイトの空き領域
? quit

JDK6 で追加になったと思われるクラス一覧

ほんとは 7 のを知りたかったんだけど、まだ実装途中っぽいので 6 で。結構知らないのあるなー。

1.6:
  - java.awt.Desktop
  - java.awt.GridBagLayoutInfo
  - java.awt.LinearGradientPaint
  - java.awt.MultipleGradientPaint
  - java.awt.RadialGradientPaint
  - java.awt.SplashScreen
  - java.awt.SystemTray
  - java.awt.TrayIcon
  - java.awt.Component.BaselineResizeBehavior
  - java.awt.Desktop.Action
  - java.awt.Dialog.ModalExclusionType
  - java.awt.Dialog.ModalityType
  - java.awt.MultipleGradientPaint.ColorSpaceType
  - java.awt.MultipleGradientPaint.CycleMethod
  - java.awt.TrayIcon.MessageType
  - java.awt.font.LayoutPath
  - java.awt.geom.Path2D
  - java.awt.geom.Path2D.Double
  - java.awt.geom.Path2D.Float
  - java.beans.ConstructorProperties
  - java.io.Console
  - java.io.IOError
  - java.lang.management.LockInfo
  - java.lang.management.MonitorInfo
  - java.net.CookiePolicy
  - java.net.CookieStore
  - java.net.CookieManager
  - java.net.HttpCookie
  - java.net.IDN
  - java.net.InterfaceAddress
  - java.security.Policy.Parameters
  - java.security.PolicySpi
  - java.security.URIParameter
  - java.sql.NClob
  - java.sql.RowId
  - java.sql.SQLXML
  - java.sql.Wrapper
  - java.sql.ClientInfoStatus
  - java.sql.RowIdLifetime
  - java.sql.SQLClientInfoException
  - java.sql.SQLDataException
  - java.sql.SQLFeatureNotSupportedException
  - java.sql.SQLIntegrityConstraintViolationException
  - java.sql.SQLInvalidAuthorizationSpecException
  - java.sql.SQLNonTransientConnectionException
  - java.sql.SQLNonTransientException
  - java.sql.SQLRecoverableException
  - java.sql.SQLSyntaxErrorException
  - java.sql.SQLTimeoutException
  - java.sql.SQLTransactionRollbackException
  - java.sql.SQLTransientConnectionException
  - java.sql.SQLTransientException
  - java.text.Normalizer
  - java.text.Normalizer.Form
  - java.text.spi.BreakIteratorProvider
  - java.text.spi.CollatorProvider
  - java.text.spi.DateFormatProvider
  - java.text.spi.DateFormatSymbolsProvider
  - java.text.spi.DecimalFormatSymbolsProvider
  - java.text.spi.NumberFormatProvider
  - java.util.Deque
  - java.util.NavigableMap
  - java.util.NavigableSet
  - java.util.AbstractMap.SimpleEntry
  - java.util.AbstractMap.SimpleImmutableEntry
  - java.util.ArrayDeque
  - java.util.ResourceBundle.Control
  - java.util.ServiceLoader
  - java.util.ServiceConfigurationError
  - java.util.concurrent.BlockingDeque
  - java.util.concurrent.ConcurrentNavigableMap
  - java.util.concurrent.RunnableFuture
  - java.util.concurrent.RunnableScheduledFuture
  - java.util.concurrent.ConcurrentSkipListMap
  - java.util.concurrent.ConcurrentSkipListSet
  - java.util.concurrent.LinkedBlockingDeque
  - java.util.concurrent.locks.AbstractOwnableSynchronizer
  - java.util.concurrent.locks.AbstractQueuedLongSynchronizer
  - java.util.spi.CurrencyNameProvider
  - java.util.spi.LocaleNameProvider
  - java.util.spi.LocaleServiceProvider
  - java.util.spi.TimeZoneNameProvider
  - java.util.zip.DeflaterInputStream
  - java.util.zip.InflaterOutputStream
  - java.util.zip.ZipError
  - javax.activation.CommandObject
  - javax.activation.DataContentHandler
  - javax.activation.DataContentHandlerFactory
  - javax.activation.DataSource
  - javax.activation.ActivationDataFlavor
  - javax.activation.CommandInfo
  - javax.activation.CommandMap
  - javax.activation.DataHandler
  - javax.activation.FileDataSource
  - javax.activation.FileTypeMap
  - javax.activation.MailcapCommandMap
  - javax.activation.MimeType
  - javax.activation.MimeTypeParameterList
  - javax.activation.MimetypesFileTypeMap
  - javax.activation.URLDataSource
  - javax.activation.MimeTypeParseException
  - javax.activation.UnsupportedDataTypeException
  - javax.annotation.processing.Completion
  - javax.annotation.processing.Filer
  - javax.annotation.processing.Messager
  - javax.annotation.processing.ProcessingEnvironment
  - javax.annotation.processing.Processor
  - javax.annotation.processing.RoundEnvironment
  - javax.annotation.processing.AbstractProcessor
  - javax.annotation.processing.Completions
  - javax.annotation.processing.FilerException
  - javax.annotation.processing.SupportedAnnotationTypes
  - javax.annotation.processing.SupportedOptions
  - javax.annotation.processing.SupportedSourceVersion
  - javax.lang.model.SourceVersion
  - javax.lang.model.element.AnnotationMirror
  - javax.lang.model.element.AnnotationValue
  - javax.lang.model.element.AnnotationValueVisitor
  - javax.lang.model.element.Element
  - javax.lang.model.element.ElementVisitor
  - javax.lang.model.element.ExecutableElement
  - javax.lang.model.element.Name
  - javax.lang.model.element.PackageElement
  - javax.lang.model.element.TypeElement
  - javax.lang.model.element.TypeParameterElement
  - javax.lang.model.element.VariableElement
  - javax.lang.model.element.ElementKind
  - javax.lang.model.element.Modifier
  - javax.lang.model.element.NestingKind
  - javax.lang.model.element.UnknownAnnotationValueException
  - javax.lang.model.element.UnknownElementException
  - javax.lang.model.type.ArrayType
  - javax.lang.model.type.DeclaredType
  - javax.lang.model.type.ErrorType
  - javax.lang.model.type.ExecutableType
  - javax.lang.model.type.NoType
  - javax.lang.model.type.NullType
  - javax.lang.model.type.PrimitiveType
  - javax.lang.model.type.ReferenceType
  - javax.lang.model.type.TypeMirror
  - javax.lang.model.type.TypeVariable
  - javax.lang.model.type.TypeVisitor
  - javax.lang.model.type.WildcardType
  - javax.lang.model.type.TypeKind
  - javax.lang.model.type.MirroredTypeException
  - javax.lang.model.type.MirroredTypesException
  - javax.lang.model.type.UnknownTypeException
  - javax.lang.model.util.Elements
  - javax.lang.model.util.Types
  - javax.lang.model.util.AbstractAnnotationValueVisitor6
  - javax.lang.model.util.AbstractElementVisitor6
  - javax.lang.model.util.AbstractTypeVisitor6
  - javax.lang.model.util.ElementFilter
  - javax.lang.model.util.ElementKindVisitor6
  - javax.lang.model.util.ElementScanner6
  - javax.lang.model.util.SimpleAnnotationValueVisitor6
  - javax.lang.model.util.SimpleElementVisitor6
  - javax.lang.model.util.SimpleTypeVisitor6
  - javax.lang.model.util.TypeKindVisitor6
  - javax.management.DescriptorRead
  - javax.management.ImmutableDescriptor
  - javax.management.JMX
  - javax.management.StandardEmitterMBean
  - javax.management.DescriptorKey
  - javax.management.MXBean
  - javax.management.loading.MLetContent
  - javax.management.openmbean.CompositeDataView
  - javax.management.openmbean.CompositeDataInvocationHandler
  - javax.management.remote.JMXAddressable
  - javax.net.ssl.SSLParameters
  - javax.script.Bindings
  - javax.script.Compilable
  - javax.script.Invocable
  - javax.script.ScriptContext
  - javax.script.ScriptEngine
  - javax.script.ScriptEngineFactory
  - javax.script.AbstractScriptEngine
  - javax.script.CompiledScript
  - javax.script.ScriptEngineManager
  - javax.script.SimpleBindings
  - javax.script.SimpleScriptContext
  - javax.script.ScriptException
  - javax.security.auth.login.Configuration.Parameters
  - javax.security.auth.login.ConfigurationSpi
  - javax.sql.StatementEventListener
  - javax.sql.StatementEvent
  - javax.swing.DefaultRowSorter
  - javax.swing.DefaultRowSorter.ModelWrapper
  - javax.swing.GroupLayout
  - javax.swing.JList.DropLocation
  - javax.swing.JTable.DropLocation
  - javax.swing.JTree.DropLocation
  - javax.swing.LayoutStyle
  - javax.swing.RowFilter
  - javax.swing.RowFilter.Entry
  - javax.swing.RowSorter
  - javax.swing.RowSorter.SortKey
  - javax.swing.SwingWorker
  - javax.swing.TransferHandler.DropLocation
  - javax.swing.TransferHandler.TransferSupport
  - javax.swing.DropMode
  - javax.swing.GroupLayout.Alignment
  - javax.swing.LayoutStyle.ComponentPlacement
  - javax.swing.RowFilter.ComparisonType
  - javax.swing.SortOrder
  - javax.swing.SwingWorker.StateValue
  - javax.swing.event.RowSorterListener
  - javax.swing.event.RowSorterEvent
  - javax.swing.event.RowSorterEvent.Type
  - javax.swing.filechooser.FileNameExtensionFilter
  - javax.swing.table.TableRowSorter
  - javax.swing.table.TableStringConverter
  - javax.swing.text.JTextComponent.DropLocation
  - javax.tools.Diagnostic
  - javax.tools.DiagnosticListener
  - javax.tools.FileObject
  - javax.tools.JavaCompiler
  - javax.tools.JavaFileManager
  - javax.tools.JavaFileObject
  - javax.tools.OptionChecker
  - javax.tools.StandardJavaFileManager
  - javax.tools.Tool
  - javax.tools.DiagnosticCollector
  - javax.tools.ForwardingFileObject
  - javax.tools.ForwardingJavaFileManager
  - javax.tools.ForwardingJavaFileObject
  - javax.tools.SimpleJavaFileObject
  - javax.tools.ToolProvider
  - javax.tools.StandardLocation
  - javax.xml.crypto.AlgorithmMethod
  - javax.xml.crypto.Data
  - javax.xml.crypto.KeySelectorResult
  - javax.xml.crypto.NodeSetData
  - javax.xml.crypto.URIDereferencer
  - javax.xml.crypto.URIReference
  - javax.xml.crypto.XMLCryptoContext
  - javax.xml.crypto.XMLStructure
  - javax.xml.crypto.KeySelector
  - javax.xml.crypto.OctetStreamData
  - javax.xml.crypto.KeySelectorException
  - javax.xml.crypto.MarshalException
  - javax.xml.crypto.NoSuchMechanismException
  - javax.xml.crypto.URIReferenceException
  - javax.xml.crypto.dom.DOMURIReference
  - javax.xml.crypto.dom.DOMCryptoContext
  - javax.xml.crypto.dom.DOMStructure
  - javax.xml.crypto.dsig.CanonicalizationMethod
  - javax.xml.crypto.dsig.DigestMethod
  - javax.xml.crypto.dsig.Manifest
  - javax.xml.crypto.dsig.Reference
  - javax.xml.crypto.dsig.SignatureMethod
  - javax.xml.crypto.dsig.SignatureProperties
  - javax.xml.crypto.dsig.SignatureProperty
  - javax.xml.crypto.dsig.SignedInfo
  - javax.xml.crypto.dsig.Transform
  - javax.xml.crypto.dsig.XMLObject
  - javax.xml.crypto.dsig.XMLSignature
  - javax.xml.crypto.dsig.XMLSignContext
  - javax.xml.crypto.dsig.XMLValidateContext
  - javax.xml.crypto.dsig.TransformService
  - javax.xml.crypto.dsig.XMLSignatureFactory
  - javax.xml.crypto.dsig.TransformException
  - javax.xml.crypto.dsig.XMLSignatureException
  - javax.xml.crypto.dsig.dom.DOMSignContext
  - javax.xml.crypto.dsig.dom.DOMValidateContext
  - javax.xml.crypto.dsig.keyinfo.KeyInfo
  - javax.xml.crypto.dsig.keyinfo.KeyName
  - javax.xml.crypto.dsig.keyinfo.KeyValue
  - javax.xml.crypto.dsig.keyinfo.PGPData
  - javax.xml.crypto.dsig.keyinfo.RetrievalMethod
  - javax.xml.crypto.dsig.keyinfo.X509Data
  - javax.xml.crypto.dsig.keyinfo.X509IssuerSerial
  - javax.xml.crypto.dsig.keyinfo.KeyInfoFactory
  - javax.xml.crypto.dsig.spec.C14NMethodParameterSpec
  - javax.xml.crypto.dsig.spec.DigestMethodParameterSpec
  - javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
  - javax.xml.crypto.dsig.spec.TransformParameterSpec
  - javax.xml.crypto.dsig.spec.ExcC14NParameterSpec
  - javax.xml.crypto.dsig.spec.HMACParameterSpec
  - javax.xml.crypto.dsig.spec.XPathFilter2ParameterSpec
  - javax.xml.crypto.dsig.spec.XPathFilterParameterSpec
  - javax.xml.crypto.dsig.spec.XPathType
  - javax.xml.crypto.dsig.spec.XSLTTransformParameterSpec
  - javax.xml.stream.EventFilter
  - javax.xml.stream.Location
  - javax.xml.stream.StreamFilter
  - javax.xml.stream.XMLEventReader
  - javax.xml.stream.XMLEventWriter
  - javax.xml.stream.XMLReporter
  - javax.xml.stream.XMLResolver
  - javax.xml.stream.XMLStreamConstants
  - javax.xml.stream.XMLStreamReader
  - javax.xml.stream.XMLStreamWriter
  - javax.xml.stream.XMLEventFactory
  - javax.xml.stream.XMLInputFactory
  - javax.xml.stream.XMLOutputFactory
  - javax.xml.stream.XMLStreamException
  - javax.xml.stream.FactoryConfigurationError
  - javax.xml.stream.events.Attribute
  - javax.xml.stream.events.Characters
  - javax.xml.stream.events.Comment
  - javax.xml.stream.events.DTD
  - javax.xml.stream.events.EndDocument
  - javax.xml.stream.events.EndElement
  - javax.xml.stream.events.EntityDeclaration
  - javax.xml.stream.events.EntityReference
  - javax.xml.stream.events.Namespace
  - javax.xml.stream.events.NotationDeclaration
  - javax.xml.stream.events.ProcessingInstruction
  - javax.xml.stream.events.StartDocument
  - javax.xml.stream.events.StartElement
  - javax.xml.stream.events.XMLEvent
  - javax.xml.stream.util.XMLEventAllocator
  - javax.xml.stream.util.XMLEventConsumer
  - javax.xml.stream.util.EventReaderDelegate
  - javax.xml.stream.util.StreamReaderDelegate
  - javax.xml.transform.stax.StAXResult
  - javax.xml.transform.stax.StAXSource

http://download.java.net/jdk7/binaries/ からげとした JavaDocs から適当に生成しているので正しいかわかりません。

#!/usr/bin/perl
use strict;
use warnings;

use URI;
use URI::file;
use Web::Scraper;
use YAML;

my $result = scraper {
    process '//p/font[@class="FrameItemFont"]/a[@target="packageFrame"]', 'packages[]' => ['@href', sub {
        scraper {
            process '//font[@class="FrameItemFont"]/a', 'classes[]' => ['@href', sub {
                scraper {
                    process '//meta[@name="keywords"]', 'name' => ['@content', sub { s/\s.+// }];
                    process '//body/p/dl[dt/strong[text()="Since:"]]/dd[1]', 'version' => 'text';
                }->scrape($_);
            }];
        }->scrape($_);
    }];
}->scrape(URI->new('overview-frame.html')->abs(URI::file->cwd));

my $classes = { };
foreach my $package (@{$result->{packages}}) {
    foreach my $class (@{$package->{classes}}) {
        my $version = defined $class->{version} ? $class->{version} : '???';
        $classes->{$version} = [ ]
            unless defined $classes->{$version};
        push @{$classes->{$version}}, $class->{name};
    }
}

print Dump $classes;

JScript で DateAdd()

計算する。

ijsc> new Date(new Date().getTime() + 3 * 24 * 60 * 60 * 1000)
Thu Mar 26 22:07:13 UTC+0900 2009

VBScript 使う。

ijsc> var sc = new ActiveXObject('ScriptControl')
ijsc> sc.Language = 'VBScript'
VBScript
ijsc> sc.AddCode('Function AddDays(days, date):AddDays=DateAdd("d", days, date):End Function')
ijsc> new Date(sc.Run('AddDays', 3, new Date().getVarDate()))
Thu Mar 26 22:07:40 UTC+0900 2009

.NET 使う。

ijsc> new Date(new ActiveXObject('System.Globalization.JapaneseCalendar').AddDays(new Date().getVarDate(), 3))
Thu Mar 26 22:07:45 UTC+0900 2009

バグ?

あとで調べる、きっと。Windows Vista + Strawberry Perl な環境。

D:\temp>cat zzz.pl
use ExtUtils::MakeMaker;
WriteMakefile(
    'NAME' => 'Foo::Bar'
);

D:\temp>perl zzz.pl
Writing Makefile for Foo::Bar

D:\temp>grep -n @ARGV Makefile
210:ECHO = $(ABSPERLRUN) -l -e "print qq{{@ARGV}" --
211:ECHO_N = $(ABSPERLRUN)  -e "print qq{{@ARGV}" --
214:MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e "install({{@ARGV}, '$(VERBINST)', 0, '$(UNINST)');" --
787:    $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e "pm_to_blib({{@ARGV}, '$(INST_LIB)\auto', '$(PM_FILTER)')" -- \

D:\temp>

とりあえず、{{@ARGV} を {@ARGV} にすれば動く。