apple scriptにおいて、ファイル名変更の自動化を試みています。
ファイル名にabcという文字が含まれる場合、それらをdefに
変更する、というようなことがしたいのですが、
(001abc.txt -> 001def.txt
003abc0.txt -> 003def0.txt)
apple scriptにおいて
set oldName to name of aObj
--- newNameを指定
set name of aObj to newName
の上記でoldNameからnewNameをどう得たらよろしいでしょうか?
No.2ベストアンサー
- 回答日時:
サブルーチンにしてください。
例えば、tell application "Finder"
set oldName to "001abc.txt"
set newName to my replace(oldName)
end tell
on replace(oldName)
set oldDel to text item delimiters
set text item delimiters to "abc"
set myList to text items of oldName
set text item delimiters to "def"
set newName to myList as string
set text item delimiters to oldDel
return newName
end replace
といった具合。
あるいは、Finder で直接操作したいなら、text item delimiters を AppleScript's text item delimiters に置き換えてください。
tell application "Finder"
set oldName to "001abc.txt"
set oldDel to AppleScript's text item delimiters
set AppleScript's text item delimiters to "abc"
set myList to text items of oldName
set AppleScript's text item delimiters to "def"
set newName to myList as string
set AppleScript's text item delimiters to oldDel
end tell
という具合。
再度ありがとうございます。
AppleScript'sをつけると実行できました。希望の名前変更scriptが
実行できるようになりました。
ありがとうございました。
No.1
- 回答日時:
set text item delimiters to "abc"
set myList to text items of oldName
set text item delimiters to "def"
set newName to myList as string
ということになるでしょうか。
テキストを一旦区切って再度繋げるという手法を取ります。
このままだとテキストの区切り文字が "def" になったままなので、
set oldDel to text item delimiters
set text item delimiters to "abc"
set myList to text items of oldName
set text item delimiters to "def"
set newName to myList as string
set text item delimiters to oldDel
という形で、区切り文字を元に戻しておいた方がいいかもしれません。
この程度なら大したことはないですが、AppleScript は文字列操作が得意とは言えないので、もっと複雑な操作をするなら perl などの方が向いているでしょう。
この回答への補足
set text item delimiters to "abc"
において"Finderでエラーが起きました : text item delimitersを
"abc"に設定できません。"
というエラーが出てしまいます。
環境を下記忘れていたのですが、leopard上で作成しています。
apple scriptのバージョンによってうまくいかないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- iOS ファイルの名前変更 2 2022/08/11 20:47
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- UNIX・Linux bashでシングルクォート内の変数の組み込み方教えてください。 2 2023/02/14 19:30
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
batファイルの結果をテキストに...
-
【VBA】テキストファイルから特...
-
バッチファイルで改行の出力
-
コマンドにてテキストファイル...
-
echo "abc" >> test.txt で、先...
-
diffコマンドにてテキスト出力
-
echoの出力の最後のスペースを...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 指定行の切り出し
-
nkfで全角ハイフンが半角になる...
-
ダウンロードするとメモ帳に表...
-
バッチファイル 現在のフォルダ...
-
bashで、gotoのようなラベルに...
-
エクセルのセルに設定したハイ...
-
コマンド実行結果を環境変数に...
-
xcodeでのファイル操作について
-
コマンドプロンプトを使わずに...
-
【DOSコマンド】for の デリミ...
-
コマンドプロンプトで相対パス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
バッチファイル 指定行の切り出し
-
echoの出力の最後のスペースを...
-
echo "abc" >> test.txt で、先...
-
バッチファイルで改行の出力
-
コマンドプロンプトで相対パス...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで標準エラ...
-
コマンド実行結果を環境変数に...
-
batファイルの結果をテキストに...
-
コマンドにてテキストファイル...
-
txtって、 Microsoft Wordの状...
-
bat処理の実行結果ログ出力方法...
-
bashで、gotoのようなラベルに...
-
R18文学賞は400字詰め換算で(2...
-
NULLの置き換えについて
-
FTPのバッチファイルで日付を引...
-
バッチコマンドの「set」で入力...
-
.txtって、縦書きにはならない...
-
バッチファイル 現在のフォルダ...
おすすめ情報