AppleScript funziona, ma non sembra funzionare

1

Ho una cartella di lavoro di Excel aperta, con i vecchi nomi di file nella colonna A e i nuovi nomi di file nella colonna B. Sto tentando di usare il seguente codice per rinominare i miei file. Funziona senza errori, ma non rinomina i file. Mi sto perdendo qualcosa? Qualsiasi aiuto è molto apprezzato.

set theDirectory to "/Users/admin/Desktop/test/copied images"
tell application "Microsoft Excel"
    tell active sheet
        tell used range
            set rc to count of rows
        end tell
        set theList to get value of range ("A1:B" & rc) as list
        repeat with theItem in theList
            try
                do shell script "mv " & theDirectory & "/" & quoted form of item 1 of     theItem & space & theDirectory & "/" & quoted form of item 2 of theItem
            end try
        end repeat
    end tell
end tell
    
posta Carlos Rivera 22.11.2017 - 05:25
fonte

1 risposta

0

Perché il tuo script sembra funzionare senza errori

Lo script viene eseguito senza errori perché ingerisce qualsiasi errore che potrebbe verificarsi nella riga do shell script .

Rimuovere temporaneamente le try e end try vicine per disattivare l'audio degli errori. Ciò probabilmente porterà a un messaggio di errore che termina con Nessun file o directory.

Perché il tuo script non rinomina i file

Il problema è che il tuo script passa il valore di theDirectory direttamente al comando della shell senza citarlo. Poiché questo valore contiene spazi, la shell interpreta la parte directory & [...] theItem come due argomenti separati, il che causa il fallimento di mv .

Soluzione

Nella riga do shell script , sostituisci entrambe le occorrenze di

theDirectory

con:

quoted form of theDirectory

(Facoltativo) Rendi più robusto lo script

Inoltre, ti suggerisco di perdere del tutto try / end try circostante, o in alternativa di inserire un'istruzione on error per gestire possibili errori che possono verificarsi nella parte do shell script .

Scrivere script che non ingurgitano errori significa risparmiare tempo a lungo termine.

    
risposta data 22.11.2017 - 08:51
fonte

Leggi altre domande sui tag