フォルダーの名前をフォルダーの中にあるテキストファイルの内容により自動変更の方法有りますでしょうか?
現在の構成はこのようになっています。c:\temp\は適当につけてあります。
c:\temp\folder1\textfile.data
c:\temp\folder2\textfile.data
c:\temp\folder3\textfile.data
~
c:\temp\folder999\textfile.data
となっており、
変更は
c:\temp\folder1\textfile.data のファイルの中身はJSON形式になっており、その中に
"title":{"en":"English Name1","ja":"日本名1","int":"Internal Name1"},
の様に記述されている日本名をそのファイル名にしたいわけです。
c:\temp\folder999\textfile.dataの中身は普通のテキストファイルです。
結果的に
c:\temp\folder1\
は
c:\temp\日本名1\
となります。
そういうファイルやフォルダーが沢山あるわけですが、Windows Script, DOS batch script,phpでもなんでも良いのですが良い案は有りますでしょうか?
分かりにくければ補足します。
No.1ベストアンサー
- 回答日時:
>"title":{"en":"English Name1","ja":"日本名1","int":"Internal Name1"},
お書きのデータが1行に収まっているのであれば、バッチで出来ます。
cd /d C:\Temp
for /d %%A in (*) do for /f "tokens=4-5 delims=,:" %%B in (%%A\textfile.data) do if %%B == "ja" ren %%A %%C
そうで無ければ、Ruby/Perl/PHP等でJSONライブラリを使うのでしょうかね。
返信が遅れ大変失礼しております。
現在まだ成功はしておりませんが、個人的に一番近い物を提供して頂いていると思っておりますので、ベストアンサーに選ばせて頂きたく思います。お時間を取っていただき有り難うございます。
No.2
- 回答日時:
Windows Script でやるならば
c:\> cscript.exe hoge.wsf c:\temp
-- hoge.wsf
<?XML version="1.0" standalone="yes" ?>
<package><job id="qa8986367">
<runtime><usage>フォルダ名を配下のJSONファイルに従って変更します</usage></runtime>
<object id="fso" progid="Scripting.FileSystemObject" />
<script language="JavaScript"><![CDATA[(function(){_=0;
_ ; function forEach(obj, proc) { for (var c = new Enumerator(obj); !c.atEnd(); c.moveNext()) proc(c.item()); }
_ ; var a = WScript.arguments; if (a.count() < 1) { a.showUsage(); WScript.quit(1) }
_ ; var name = a.item(0);
_ ; var targetFolder = fso.getFolder(name);
_ ; var result = [];
_ ; forEach(targetFolder.subFolders, function(folder) {
_ , _ ; var titleJa = null;
_ , _ ; forEach(folder.files, function(file){
_ , _ , _ ; if (!(/\.data$/.test(file.name))) return; // 特定のファイル名
_ , _ , _ ; var st = file.openAsTextStream(1/*ForReading*/);
_ , _ , _ ; var text = st.readAll();
_ , _ , _ ; st.close(); if (!text) return; // テキストファイル
_ , _ , _ ; var data = eval("(" + text + ")");
_ , _ , _ ; if (!(data && typeof data == 'object')) return; // JSON 形式
_ , _ , _ ; if (data.title && data.title.ja) titleJa = data.title.ja;
_ , _ ; });
_ , _ ; if (!titleJa) return; // 変名対象外
_ , _ ; if (folder.name != titleJa) {
_ , _ , _ ; folder.name = titleJa;
_ , _ , _ ; result.push(folder.name + " -> " + titleJa);
_ , _ ; } else {
_ , _ , _ ; result.push(folder.name + " nochange"); // 既に変名済み
_ , _ ; }
_ ; });
_ ; WScript.echo(result.join('\n')); // 結果報告
})()]]></script>
</job></package>
簡単に書いたので JSON 解析を eval で行っていますが、
セキュリティを気にかける用途ならば、別途 JSON 処理ライブラリを盛り込んでください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Drive Googleドライブでのファイルの移動 2 2022/11/01 14:23
- その他(クラウドサービス・オンラインストレージ) Google ColabでGoogleドライブのサブフォルダにファイルを生成する方法 1 2022/10/31 17:37
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Windows 8 tempフォルダ全消ししていい? 3 2022/12/31 12:49
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
html javascript リンク先アド...
-
アコーディオンメニューの高さ...
-
VSCODE[Python]の設定について
-
カンマで終わってるのはセミコ...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
C#OpenCv V4にのエラーに関する...
-
タイピングゲームの異なるロー...
-
二次元配列に値をセットしたい...
-
アルファベットABCD…をスマート...
-
とあるAJAXでの値の受け取り方...
-
なぜmatchメソッドがエラーにな...
-
GoogleMap 住所から座標の取得
-
リンクの有無を判別して画像の...
-
ASP.NET MVCでObjectをjsに渡す
-
15パズルの作り方が分かりません!
-
AM,PMの時間表示について
-
javascript 【continue 使い方】
-
HTMLで作った時報アプリが動き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
javaScriptのコードの修正をお...
-
ジェネレーターの作り方
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
GASでundefinedエラーが出ます
-
C#で、ContextMenuStripに動的...
-
GASでGoogleフォームの自動返信...
-
VSCODE[Python]の設定について
-
ASP.NET MVCでObjectをjsに渡す
-
C# 演算 奇数と偶数 表現の仕方
-
javascriptでiframeのURL変更は?
-
イベントが初めの一回しか起き...
-
なぜmatchメソッドがエラーにな...
-
jqGridについて
-
gas スプレッドシートがアクテ...
-
JavaScriptで文字列の特定文字...
-
googleスプレッドシートのApps ...
-
var exports = exports || {}; ...
おすすめ情報