Missing value

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

Hej

Jag har gjort ett skript som kollar storleken på ett stort antal mappar (via en loop)...

I den första loopen klarar skriptet av att räkna ut "vikten" på mappen - men inte i den andra loopen. Skriptet stannar och säger "missing value.."

Min variabel FolderSize är tom.

Det konstiga är; skriptet har tidigare fungerat, men inte nu och detta utan att jag gjort nått...!

Vad göra?

Tacksam för vägledning.

Erland Segerstedt
Kusmark

  • Medlem
  • 2007-01-18 23:56

Svårt att säga något utan att veta hur scriptet ser ut...

Men om jag fattat det rätt så betyder missing value ungefär det som du redan sett, dvs. att det saknas ett värde. Varför det blir så beror nog helt på programmet som returnerade det.

Det skulle kunna vara så att programmet ballat ur - det händer titt som tätt när jag försöker scripta mot Word, och ibland så hjälper en omstart av programmet.

Det är Finder som anropas i skriptet.

//Erland Segerstedt

--KOD FÖR LADDNING AV MAPPEN MED RÅFILSMAPPAR t o m 4,6 GB---
property rawfilsLager : (alias "/Volumes/RafilsLager/Klara_RAWmappar")

tell application "Finder"
set maxDVDnsMappStorlek to 4.6E+9 -- 4600000000 for DVD, in Bytes
set dvd_mappStorlek to ""
set nyMapp to (make new folder at desktop with properties {name:nyttMappNamn})
set rawfilsLagers_Mappar to every folder of rawfilsLager
repeat with varjeMapp in rawfilsLagers_Mappar

if dvd_mappStorlek < maxDVDnsMappStorlek then
select varjeMapp
set varjemappStorlek to (get size of varjeMapp)
set varjemappFlyttad to false

if dvd_mappStorlek + varjemappStorlek < maxDVDnsMappStorlek then
<--(...Här stoppar skriptet i sin andra loop och säger "missing value..." )-->
move varjeMapp to nyMapp
set varjemappFlyttad to true
set dvd_mappStorlek to (dvd_mappStorlek + varjemappStorlek)
else
if dvd_mappStorlek + varjemappStorlek > maxDVDnsMappStorlek then
end if
end if
end if
end repeat
end tell
--SLUT KOD FÖR LADDNING AV MAPPEN MED RÅFILSMAPPAR t o m 4,6 GB---

  • Medlem
  • 2007-01-23 01:16

Jag testade att använda "tell application "Finder" to get size of aFolder", och för mej blev det alltid "missing value" första gången jag körde kommandot. Körde jag det en gång till fick jag ett resultat tillbaka.

Min gissning är att Finder har lite för bråttom och inte riktigt hinner med att räkna ut storleken på mappen innan den returnerar ett värde, och alltså skickar tillbaka "missing value" istället.

Testa att använda kommandot "info for" istället (finns i Scripting Additions), och se om det funkar bättre:

set varjemappStorlek to (get size of (info for varjeMapp))

Kodförslag från wlao:
..."set varjemappStorlek to (get size of (info for varjeMapp))"...
Tyvärr wlao - ditt förslag till kod fungerade inte heller...!

Däremot skrev jag in "as integer" i slutet på min rad
..."set varjemappStorlek to (get size of varjeMapp as integer)"...
å då helst plötsligt fungerade skriptet.

Nu har jag ett skript som fyller en nyskapad mapp med ett antal mappar upp till ca 4,2-4,4 GB, vilken jag sen bränner ner på en dvd-skiva.

Tack för hjälpen
//Erland Segerstedt

1
Bevaka tråden