0

ちょうど11個のファイルがあります。これらは、1.jpg、2.jpg から 11.jpg までの名前が付けられています。私は半分が機能する次のことを思いつきました。

ただし、問題はファイルの半分しか処理されないことです。具体的には、奇数番号のファイルのみが処理されます。つまり、2 つおきのファイルがスキップされます。何かご意見は?

この人がフォルダーの名前を変更するときに同様の問題を抱えていることに気付きましたが、私はそれを自分のシナリオに適用するのに十分な知識がありません. AppleScript でフォルダーの名前を一括変更すると、他のすべてのフォルダーの名前のみが変更されます

display dialog "Person ID number. (numerals only)?" default answer ""
tell application "Finder"
set personid to text returned of result
set home_path to home as text
set file1name to "_front"
set file2name to "_prof"
set file3name to "_neck"
set file4name to "_no_phon"
set file5name to "_phon"
set file6name to "_max"
set file7name to "_prof_max"
set file8name to "_relax"
set file9name to "_prof_relax"
set file10name to "_depress_no_phon"
set file11name to "_depress_phon"

tell folder (home_path & "Downloads:sagicphotos")
    set name of file 1 to "PRN" & personid & file1name & "." & name extension of file 1
    set name of file 2 to "PRN" & personid & file2name & "." & name extension of file 2
    set name of file 3 to "PRN" & personid & file3name & "." & name extension of file 3
    set name of file 4 to "PRN" & personid & file4name & "." & name extension of file 4
    set name of file 5 to "PRN" & personid & file5name & "." & name extension of file 5
    set name of file 6 to "PRN" & personid & file6name & "." & name extension of file 6
    set name of file 7 to "PRN" & personid & file7name & "." & name extension of file 7
    set name of file 8 to "PRN" & personid & file8name & "." & name extension of file 8
    set name of file 9 to "PRN" & personid & file9name & "." & name extension of file 9
    set name of file 10 to "PRN" & personid & file10name & "." & name extension of file 10
    set name of file 11 to "PRN" & personid & file11name & "." & name extension of file 11
end tell
end tell
4

2 に答える 2

0

ファイルの名前を変更すると、ファイルの順序が変更されるため、一部のファイルは名前が変更されません。名前を変更する前に、ファイルのリストを取得するだけです。

set personid to "1234"

set filenames to paragraphs of "_front
_prof
_neck
_no_phon
_phon
_max
_prof_max
_relax
_prof_relax
_depress_no_phon
_depress_phon"

set filelist to paragraphs of (do shell script "cd ~/Downloads/sagicphotos; ls | sort -n")
tell application "Finder"
    set i to 1
    repeat with f in filelist
        tell file ((home as text) & "Downloads:sagicphotos:" & f)
            set name to "PRN" & personid & item i of filenames & "." & name extension
        end tell
        set i to i + 1
    end repeat
end tell

または、シェルスクリプトを使用して:

personid=1234

filenames=(_front
_prof
_neck
_no_phon
_phon
_max
_prof_max
_relax
_prof_relax
_depress_no_phon
_depress_phon)

cd ~/Downloads/sagicphotos
for f in $(ls | sort -n); do
  mv $f PRN$personid${filenames[i++]}.${f##*.}
done
于 2013-09-22T08:29:18.227 に答える