Afghanistan.png
、、など、Albania.png
異なる国名を持つ 260 個の .png ファイルを含むフォルダーがあります。Algeria.png
次のような各国の ISO コードをすべて含むコードが入った .json ファイルがあります。
{
"AF" : "Afghanistan",
"AL" : "Albania",
"DZ" : "Algeria",
...
}
.png ファイルの名前を ISO 名を小文字に変更したいと思います。つまり、すべての画像を含むフォルダーに次の入力を入れたいのです.png
: af.png
、、、など。al.png
dz.png
私はこれを node.js でどうやって行うかを自分で調べようとしましたが、少し迷ってしまい、何かヒントをいただければ幸いです。
ベストアンサー1
そのために以下を使用する必要がありますfs
:詳しくは
特に次のfs.rename()
機能:
var fs = require('fs');
fs.rename('/path/to/Afghanistan.png', '/path/to/AF.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
これを、新しく読み取った JSON オブジェクトのキーと値に対してループすると、バッチ名前変更スクリプトが作成されます。
fs.readFile('/path/to/countries.json', function(error, data) {
if (error) {
console.log(error);
return;
}
var obj = JSON.parse(data);
for(var p in obj) {
fs.rename('/path/to/' + obj[p] + '.png', '/path/to/' + p + '.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
}
});
(ここでは、.json
ファイルが信頼できるものであり、そのキーと値をファイル名に直接使用しても安全であると想定しています。そうでない場合は、必ず適切にエスケープしてください。)