WindowsにはWSH(Windows Script Host)というスクリプトが標準で搭載されています。WSHでは主にVBScriptかJScriptを使うと思いますが、今回はJScriptでのファイルパスに関連した文字列操作についてまとめてみようと思います。
ファイル名やドライブレターの抽出
サンプルとしてsample
を下のように定義し、fso
を作成します。
var sample = "c:\\aaa\\bbb\\jscript-sample.txt";
var fso = WScript.CreateObject("Scripting.FileSystemObject");
ベースネーム
WScript.Echo('GetBaseName: ' + fso.GetBaseName(sample));
実行結果
example
ドライブ名
WScript.Echo('GetDriveName: ' + fso.GetDriveName(sample));
実行結果
c:
拡張子
WScript.Echo('GetExtensionName: ' + fso.GetExtensionName(sample));
実行結果
txt
ファイル名
WScript.Echo('GetFileName: ' + fso.GetFileName(sample));
実行結果
sample.txt
親フォルダ
WScript.Echo('GetFileName: ' + fso.GetFileName(sample));
実行結果
sample.txt
パスの結合
WScript.Echo(fso.BuildPath('aa', 'bb'));
WScript.Echo(fso.BuildPath('aa\\', 'bb'));
実行結果
aa\bb
aa\bb
スクリプトのパスの取得 注
WScript.Echo(WScript.ScriptFullName);
実行結果
c:\jscript-sample.js
スクリプトのファイル名の取得 注
WScript.Echo(WScript.ScriptName);
実行結果
jscript-sample.js
スクリプトの実行
拡張子.js
で下記のようなテキストファイルを作成&実行(ダブルクリック)すると、次のようなダイアログが表示されます。
var sample = "c:\\aaa\\bbb\\jscript-sample.txt";
var fso = WScript.CreateObject("Scripting.FileSystemObject");
WScript.Echo('GetBaseName: ' + fso.GetBaseName(sample));
注 実行結果はc:\jscript-sample.js
という場所から実行した場合の結果です。