[ WSH ] ファイルのパスをコピー

WSHを書いてみたりしています。
windows上で何もインストールせずに動くスクリプトとなると強制的にこれになるわけなのですが、
なかなか重宝します。

先日、あきおさんのブログで、ファイルパスの\を/にして
クリップボードにコピーするVBScriptが公開されていたので、
自分用にJScript版を作ってみました。ほぼ丸写しさせていただいておりますwww
若干の機能も付け加えてあって、\が\\になったり、そのままコピーしたり出来るようにしています。

あきおさんありがとうございます!

以下ソースコード↓


—————————————————————————
function getFilePath()
{
  // get file name
  var filePath = WScript.Arguments(0);
  var mode = WScript.Arguments(1);

  if ( filePath.length < 2 ) {
    WScript.echo( “The parameter is not enough.” );
  }
  
  // replace character
  if ( mode == 1 ) {
    filePath = filePath.replace( /\\/g, “/” );
  } else if ( mode == 2 ) {
    filePath = filePath.replace( /\\/g, “\\\\” );
  }

  // using IE for clipboard operation
  var IE = WScript.CreateObject( “InternetExplorer.Application” )
  IE.Navigate( “about:blank” );
  while ( IE.Busy || IE.document.readyState != “complete” )
    WScript.Sleep( 10 );
  
  // clear clipboard
  IE.document.parentWindow.clipboardData.clearData( “text” );
  
  // copy to clipboard
  IE.document.parentWindow.clipboardData.setData( “text”, filePath );
  
  // finish IE
  IE.Quit();
  IE = undefined;
}

getFilePath();
—————————————————————————

実行の際は別に.batを作成して、

@cscript ./getFilePath.js %1 0 と記述すると、そのままファイルパスがコピーされ、
@cscript ./getFilePath.js %1 1 ならスラッシュに置き換えてコピー、
@cscript ./getFilePath.js %1 2 だと\\になります。

これをそれぞれ.batとして保存して、それのショートカットをsendToフォルダに入れると、
右クリック>送るに追加されるので非常にやりやすいです。

ファイルそのものをUPすればいいんでしょうけど、今まだ自宅にネットがつながってないので、、、
すみません、、、

sendToに入れると、フォルダに対しても使えるので便利です。
一瞬コマンドプロンプトが立ち上がりますが、気にせず。

コメントを残す

メールアドレスが公開されることはありません。