私の例の.CSVファイルでは、次の値を持つ列Aがあります:2,2,5,5,5。 B列には、ダウンロードが必要な対応ファイルへのハイパーリンクがあります。http://example.com/2A.pdf、http://example.com/2B.pdf、http://example.com/5A.pdf、、http://example.com/5BC.pdfです。 (一意でない列Aの値に基づいて)DLフォルダーを作成し、対応する行のDLを適切なフォルダーに適用するAppleScriptを作成するのが難しい。どんな助けでも大歓迎です! TIA。.CSV値に基づいてweblinkから作成されたフォルダに作成されたフォルダにファイルをダウンロードするためのAppleScript
答えて
あなたの説明から、私は、CSVファイルには、次のようなものになりますと仮定しています:
2, http://example.com/2A.pdf
2, http://example.com/2B.pdf
5, http://example.com/5A.pdf
5, http://example.com/5B.pdf
5, http://example.com/5BC.pdf
とファイル2A.pdfがというディレクトリに終わるべきであるが。
これを正しく解釈したと仮定すると、これを実現するAppleScriptがあります(/Path/To/Save/Folder/を、これらの新しいファイルとフォルダがダウンロードされるフォルダへのフルパスで置き換えます)。 CSVファイルのフルパスに/Path/To/File.csv):
-- Note: The ending/is essential in BaseDir
set BaseDir to POSIX file "/Path/To/Save/Folder/"
set rows to every paragraph of (read "/Path/To/File.csv")
set AppleScript's text item delimiters to {"/"}
set [TopDir, BaseFolder] to [text items 1 thru -3, text item -2] of ¬
POSIX path of BaseDir
-- Create initial base folder if it doesn't exist
tell application "Finder" to if not (exists BaseDir) then ¬
make new folder in (TopDir as text as POSIX file) ¬
with properties {name:BaseFolder}
-- This will prevent EOF-related errors
-- Thanks to @user3439894 for highlighting the need for this
set rows to reverse of rows
if the number of words of the first item in rows is 0 ¬
then set rows to the rest of rows
repeat with row in rows
set [N, |url|] to [first word, text items -2 thru -1] of row
-- Create folder into which file will be downloaded
tell application "Finder" to if not (exists [BaseDir, N] as text) then ¬
make new folder in BaseDir with properties {name:N}
-- This is the shell command that downloads the file
-- e.g. "cd '/Users/CK/Desktop/example.com/5'; curl example.com/5BC.pdf \
-- remote-name --silent --show-error"
set command to ("cd " & ¬
quoted form of POSIX path of ([BaseDir, N] as text) & ¬
"; curl " & |url| as text) & ¬
" --remote-name --silent --show-error"
-- Run the shell command
do shell script command
end repeat
-- Open folder in Finder upon completion of downloads
tell application "Finder"
activate
open BaseDir
end tell
私は、これは状況全体に働くだろう、一般的な使用のために意図ない堅牢なスクリプトであることを強調する必要がありますが、むしろ例に合わせたスクリプト説明されたケースに明確に対応する。あなたのCSVファイルが私の想定されているフォーマットと少しでも違う場合、エラーが発生する可能性があります。
投稿する前にコードをテストしましたか?それは素晴らしいスクリプトですし、もしうまくいけば+1します。主な問題は、 'do shell script command'が実行されたときに' command'に '/'がありません。最後に_newline_( '0A')がある場合、二次的な問題は失敗しています。これはかなり正常であり、ファイルの行をループするときに常にテストする必要があります。 (また、ファイルの行内で空行で失敗することもあります)。また、AppleScriptのテキスト項目区切り文字を変更してスクリプトのポイントでリセットすると、その変更はもはや適用されないと一般に認められています。 – user3439894
@ user3439894不足している「/」を強調表示していただきありがとうございます。 * Script Editor *のコードを* Safari *にコピーし、ダミー宣言*/Path/To/Save/Folder/*にテストフォルダを代入すると、末尾の "/"を忘れてしまったため、このエラーがスローされました。潜在的なEOF問題に関しては、これは私がまだこれの初心者であるという兆候の1つです。あなたが言わなかったら私には起こりませんでした。私はこれをキャッチするためにいくつかの行を追加しました。もう一度感謝します。最後に、私は意図的にTIDをリセットしないように選択します。これは今のようにこれを維持します。これはすべてのスクリプトで共通です。 – CJK
- 1. 作成した/変更した時刻に基づいてあるフォルダから別のフォルダにファイルを移動
- 2. ファイルに定義されたファイルとフォルダを作成する
- 3. さらに.csvファイルを作成するためのフォルダを作成する方法は?
- 4. 指定されたフォルダにフォルダを作成すると、新しいフォルダにサブフォルダを作成します
- 5. Node.jsでネストされたフォルダにファイルを作成する
- 6. MVCは、我々はフォルダ内のweb.configファイルで保護されたフォルダを作成するために使用されるASPにASPフォルダのWeb構成
- 7. フォルダ内のファイルに基づいて変数を作成する
- 8. アンドロイドのSDカードに作成されたフォルダですが、ファイルが作成されていません
- 9. iOS - 作成されたファイルとフォルダにアクセス
- 10. 作成されたフォルダがファイルエクスプローラに表示されません。
- 11. テキストフィールドに指定された値に基づいてボートストラップパネルを作成する
- 12. ハッキングされたnode_modulesフォルダからpackage.jsonを作成する方法
- 13. firebaseのストレージにネストされたフォルダを作成する
- 14. 登録時にIDに基づいてフォルダを作成する
- 15. フィールドに基づいてマスターcsvファイルからファイルを作成
- 16. 公開されたWebサイトに自動的に作成されたApp_Codeフォルダ
- 17. linux最近変更されたファイルに基づいてシンボリックリンクを作成する
- 18. XSD.exeによって作成されたデータセットクラスに基づいてXMLを生成
- 19. ファイルパスに基づいて複数のフォルダを作成する
- 20. CSVファイルを使用しているADユーザのCeateフォルダに間違ったフォルダ名が生成される
- 21. 新しいフォルダを作成するAppleScript
- 22. Applescriptで仲介フォルダを持つフォルダを作成するには?
- 23. Windowsのバッチファイルバックアップ、ネストされたフォルダ/ファイルの再作成
- 24. フォルダに作成された最初のファイルを取得し、それが
- 25. プログラムで作成されたドキュメントセットアイテムは常にフォルダです
- 26. Vimのファイルタイプに基づいてフォルダを作成します
- 27. フォルダとサブフォルダ(ユーザIDにリンクされたサブフォルダ)の自動作成
- 28. 未知のフォルダが/ etc/ansibleに作成されました
- 29. 指定されたパスで新しいフォルダを作成する
- 30. ファイル名の6番目の数字に基づいてフォルダを作成し、フォルダを作成してそのフォルダにファイルを移動します
これまでに試したことのコードサンプルをご提供ください。そうすれば、私たちはより効果的にあなたを助けることができます。 – Ivonet