書いたコード
var myLog=[];
var txtObj = File("C:/Users/ユーザー名/Desktop").openDlg("txtを指定してください","*.txt");
if (txtObj==null) {
alert("キャンセルしました");
} else {
txtObj.open("r");
var txtStr = txtObj.read();
var charChk = /[\*\?"<>\|]/g.test(txtStr);
if(charChk){
alert ("フォルダ名に使用できない文字が含まれています");
} else {
txtStr = txtStr.replace(/\\/g,/\//);
var txtLines=txtStr.split(/\r\n|\r|\n/);
var txtLinesCnt = txtLines.length;
for (i=0; i<txtLinesCnt; i++){
var txtBlocks = txtLines[i].split(/\t/);
var formerName = txtBlocks[0];
var latterName = txtBlocks[1];
var folderRename = Folder(formerName).rename(latterName);
if (folderRename==true) {
myLog.push((i+1)+"行目の処理に成功しました")
} else {
myLog.push((i+1)+"行目の処理に失敗しました")
}
}
alert("完了\n"+myLog.join("\n"));
}
}
メモ
アラートについて
- renameできたかどうかの分岐、try...catch と迷ったが if (folderRename==true) にした。renameできなかったときにエラーとみなされるのかどうか分からなかったので後者にしたのだけど、前者も試してみればよかった。
- 「成功しました」は出さない方が「失敗しました」を見落とす危険が減るかも。