0

ファイルを見つけて別のフォルダーに移動するスクリプトを見つけようとしています。

次のような何百もの写真を含むフォルダーがあります。

PA-600-01.jpg, PA-600-02.jpg, PA-600-03.jpg, PA-600-04.jpg, PA-601-01.jpg, PA-601-02.jpg, PA-601-03.jpg, PA-602-01.jpg, PA-602-02.jpg, PA-602-03.jpg, PA-602-04.jpg, PA-602-05.jpg

PA-600( ) の付いたすべての画像をso PA-600-01.jpg, PA-600-02.jpg, PA-600-03.jpg and PA-600-04.jpgという名前のフォルダ (新規または既存の、簡単な...)PA-600に移動したい、 PA-601( ) の付いたすべての画像をPA-601-01.jpg, PA-601-02.jpg and PA-601-03.jpgという名前のフォルダに移動したい、 ( )の付いたPA-601すべての画像を という名前のフォルダに移動したい... それまでPA-602PA-602-01.jpg, PA-602-02.jpg, PA-602-03.jpg, PA-602-04.jpg and PA-602-05.jpgPA-602PA-699

ファイルを移動しようとしましたが、ファイルのグループではありません:

tell application "Finder" make new folder at alias "Macintosh HD:Users:AirYoSo:Desktop:600-699" with properties {name:"PA-600"} copy file "Macintosh HD:Users:AirYoSo:Desktop:600-699:PA-600-01.jpg" to folder "Macintosh HD:Users:AirYoSo:Desktop:600-699:PA-600" end tell
4

2 に答える 2

1

試す:

set myFolder to (choose folder)
set pFolder to POSIX path of myFolder
set folderNames to paragraphs of (do shell script "find " & quoted form of pFolder & " \\! -name \".*\" -type f -print0 | xargs -0 ls -t | grep -Eo PA-[0-9]{3} | uniq")

repeat with aFolder in folderNames
    (do shell script "mkdir -p " & quoted form of (pFolder & aFolder))
    tell application "System Events" to move (every file of myFolder whose name begins with aFolder) to (pFolder & aFolder)
end repeat

編集使用できるフォルダーへのパスをハードワイヤしたい場合:

set myFolder to "Macintosh HD:Users:YoSo:Desktop:test"
set pFolder to myFolder's POSIX path & "/"
set folderNames to paragraphs of (do shell script "find " & quoted form of pFolder & " \\! -name \".*\" -type f -print0 | xargs -0 ls -t | grep -Eo PA-[0-9]{3} | uniq")

repeat with aFolder in folderNames
    (do shell script "mkdir -p " & quoted form of (pFolder & aFolder))
    tell application "System Events" to move (every file of folder myFolder whose name begins with aFolder) to (pFolder & aFolder)
end repeat
于 2013-02-25T23:50:17.133 に答える
0

applescriptでそれを行う方法はわかりませんが、これはMacにインストールしたbashで行うのは非常に簡単です。

#!/bin/bash
for (( c=600; c<=699; c++ ))
do
  echo "Processing PA-$c"
  mkdir -p PA-$c
  mv PA-$c-*.jpg PA-$c/
done

これをファイルに保存します。たとえばscript.sh、ファイルをjpgファイルのあるディレクトリにコピーし、ターミナルで次のように実行します(/ Users / lionel / filesをファイルへの実際のパスに置き換えます)。

$ cd /Users/lionel/files 
$ bash script.sh
于 2013-02-25T21:46:28.153 に答える