No.4ベストアンサー
- 回答日時:
#1です。
ちょっと比較・修正からはずれているのですがご容赦を。これは私が常用している、ファイルのクリエータをあらかじめセットした一覧から選択して一括変更するスクリプトです。2行目が順にYooEdit、iCab、PictureViewer、SimpleTextのクリエータをセットしている行です。長いと思われるでしょうが、Macらしい挙動を求めるとこのくらいになってしまいます。
FinderPopを使われていますか?以下のスクリプトを「コンパイル済みスクリプト」で保存して、FinderPop項目フォルダーに入れると、Finderでファイルを複数選択後、そのままコンテクストメニューからスクリプトを実行できます。もちろん「アプリケーションで保存」でも大丈夫です。ドロップレットにするには先頭に「on open」、最終行に「end open」を挿入してからアプリケーションで保存します。
=====ここからコピー(この行は不要)=====
set theFiles to {}
set creatorList to {"YoED", "iCAB", "ogle", "ttxt"}
tell application "Finder"
repeat with aFIle in selection --セレクションの振り分けをする
if (kind of aFIle ends with "画像") or (kind of aFIle ends with "書類") ツ
or (kind of aFIle ends with "ファイル") or (kind of aFIle ends with "ピクチャ") then
set end of theFiles to aFIle
else
display dialog name of aFIle & ツ
"は処理できませんのでスキップします" buttons {"Skip"} default button 1 with icon stop giving up after 2
end if
end repeat
end tell
if (count of theFiles) = 0 then
display dialog "書類が選択されていませんので終了します" buttons {"Quit"} default button 1 with icon stop giving up after 2
return
end if
set aCreator to choose from list creatorList with prompt "Choose Creator" --クリエータ変換データの設定処理
tell application "Finder"
try
repeat with aFIle in theFiles --クリエータの変更処理
set creator type of aFIle to aCreator
end repeat
on error
display dialog "作業をキャンセルしました" buttons {"OK"} default button 1 with icon note giving up after 2
(*リスト選択でキャンセルするとaCreatorにfalseがセットされる*)
end try
end tell
=====ここまでコピー(この行は不要)=====
ファイルのクリエータを調べるには、そのファイルを選択状態にして、以下のスクリプトをスクリプト編集プログラムから実行します。結果ウインドウにクリエータが表示されます。
=====ここからコピー(この行は不要)=====
tell application "Finder" to get creator type of selection
=====ここまでコピー(この行は不要)=====
同様にファイル名、修正日、作成日が得られるスクリプトです。
=====ここからコピー(この行は不要)=====
tell application "Finder" to set theData to info for selection
get {name, modification date, creation date} of theData
=====ここまでコピー(この行は不要)=====
新しく質問を出してもらえれば目立つので、皆さんからレスがつきますよ。
No.3
- 回答日時:
#1です。
>open for accessでファイルを開き、Read、Writeで読み書きします。
ファイルI/Oできるんですね。以後、気をつけます。
MacJPerlでやるなら、新規ファイルに以下のスクリプトをペーストして、Dropletで保存して下さい。名前は適当につけて下さい。このドロップレットにテキストファイルを2つドロップすると差分ファイルDiffResult.txtが新規作成されます。
このスクリプトはとりあえず差分を抽出するというレベルです。最低限のエラー処理と動作確認はしてありますが、念のためダミーファイルで試して下さい。
重要:DiffResult.txtと同名のファイルがあると上書きされてしまいます。
=====ここからコピー(この行は不要)=====
#!/usr/local/bin/perl
$i=0;
while($file = shift @ARGV){
open IN, "<$file" or die;
$i++;
if ($i==1){
$name1=$file;
while(<IN>){
chomp($_);
push @doc1,$_;
}
}elsif($i==2){
$name2=$file;
while(<IN>){
chomp($_);
push @doc2,$_;
}
}
close IN;
}
open OUT, ">DiffResult.txt" or die;
MacPerl::SetFileInfo("YoED", "TEXT", "DiffResult.txt");
$j=@doc1;
$k=@doc2;
$j=$k if $j<$k ;
$m=0;
for($i=1;$i<=$j;$i++){
$m++;
$s=shift @doc1;
$t=shift @doc2;
if($s ne $t){
$line1=$name1."(".$m."): ".$s;
$line2=$name2.": ".$t;
print OUT $line1."\n".$line2."\n";
}
}
close OUT;
MacPerl::Quit(2);
No.2
- 回答日時:
単純なファイルの読み込み・書き込みだけならAppleScriptでもできます。
open for accessでファイルを開き、Read、Writeで読み書きします。
以下のURLに命令の書式が載っているので参考にしてください。
http://homepage1.nifty.com/ton_b/dic/OSAX/conten …
ただ、高度な操作を行うにはOSAXやアプリケーションの力を借りる方が楽でしょう。
テキストデータを扱うOSAXの1つにTanaka's OSAXがあります。
http://mtlab.ecn.fpu.ac.jp/tanaka_tool.html
No.1
- 回答日時:
■テキストファイルの内容を行単位で比較して、その差分をテキストファイルに出力したいのであれば、AppleScript単体ではできません。
JeditやQuoEditのような、テキストデータをAppleScriptで操作できるエディタが別途必要です。なお、アプリごとにAppleScriptの構文が違うので、その修得も必要です。
QuoEditはFinderと同様にレコーダブルですから、とりあえず試用してみてはいかがでしょう。
AppleScriptにこだわらないならMacJperlが最適です。テキスト処理ならこちらの方が速いし、楽です。
もし、テキストファイルに出力しなくてもよいなら、フリーウエアのDODO Diffで差分をチェックできます。
■ファイルの属性(修正日やサイズ等)を比較・変更したいのならFinderに指示するだけなのでかんたんです。でもテキストファイルに出力するためにはやはりスクリプト対応のエディタ等が必要です。
回答ありがとうございます。やはりAppleScriptではできないのですね。。自分でもいろいろ調べてみたのですが、情報がなくて困っていました。
ご指摘のとおりアプリを使うのは私にはちょっと困難そうですね。ここでまた質問するのはだめかもしれませんが、後学のため、最後に記載されているファイルの属性を比較するスクリプトをおしえていただけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をdiff.shとして、以下のように2つのテキストフ 1 2023/02/03 20:06
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- 英語 "beside"と比較級の共起の可否について 5 2022/11/15 09:51
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- 統計学 お世話になっています. x軸は時間(期間)y軸はある値に対する2つのグラフ比較をしますが、私個人の考 2 2023/03/30 11:42
- 会計ソフト・業務用ソフト エクセルファイルの修復前後の比較について エクセルファイルの動きが悪く何となく修復をしてみたのですが 1 2022/12/23 17:32
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子はなぜ、大文字と小文字...
-
フォルダの中に1個しかファイ...
-
ファイルの開き方(拡張子なし)
-
macユーザーです!拡張子「Thum...
-
移動先にも同じファイル名が存...
-
Wordでのバックアプファイ...
-
Mac拡張子をいじらず名前変更の...
-
ワードやエクセルのファイル名...
-
フォルダーのプロパティで表示...
-
フォルダ内のファイル全てを印...
-
バッチで指定したファイルを選...
-
突然写真とかjpegファイルがみ...
-
エクスプローラーでファイルを...
-
パソコンのスキップとは何ですか?
-
Ubuntuでファイルを詳細表示にする
-
白い書類のアイコン。どうすれ...
-
MacのFinderでmovファイルのサ...
-
音楽ファイルのアーティスト名...
-
windows (ウィンドウズ) の 「...
-
メモ帳で、それぞれの行で、あ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
拡張子はなぜ、大文字と小文字...
-
フォルダの中に1個しかファイ...
-
パソコンのスキップとは何ですか?
-
ファイルの開き方(拡張子なし)
-
任意のフォルダを選択し、その...
-
windows (ウィンドウズ) の 「...
-
vssver2.scc って消してもいい...
-
移動先にも同じファイル名が存...
-
ワードやエクセルのファイル名...
-
フォルダーのプロパティで表示...
-
Wordのファイルを開いたとき最...
-
macユーザーです!拡張子「Thum...
-
プロパティの「所有者」の削除
-
MacのFinderでmovファイルのサ...
-
microSDに画像を移動させようと...
-
Microsoft Excel previewer に...
-
複数のワードファイルで合計ペ...
-
デスクトップ上のフォルダ、フ...
-
Androidで、ドキュメントが予期...
-
Pagesで、PDFをうまく挿入したい
おすすめ情報