AppleScript zwraca błąd podczas definiowania daty

0

mój poniższy kod zwraca błąd

tell current application
    set b to "Tuesday 12 April 2016 at 18:06:10"
    date b
end tell

Gdybym napisał ciąg zdefiniowany w b bezpośrednio przed datą, działa, ale mój ciąg daty jest zdefiniowany przez niektóre zmienne, więc b jest tylko przykładem tego ciągu, jak to wygląda.

Ale dlaczego AppleScript zwraca błąd tylko dlatego, że ciąg jest zdefiniowany w zmiennej?

cześć wszystkim
źródło
1
Dodaj rzeczywistą treść skryptu!
klanomath
Co dokładnie próbujesz zrobić, ustawić datę w systemie? Jeśli tak, musisz użyć informacji o tym, do shell script date ...gdzie ...właściwie sformatowane są dane datepolecenia.
user3439894

Odpowiedzi:

0

Próbować:

set dateString to "Tuesday, April 12, 2016 at 12:00:00 AM"
set dateReference to date dateString

tell current application
    -- insert commands here
end tell

Inne podejście:

set y to 2001
set m to 6
set d to 12
set h to 12
set min to 12
set s to 12

set cd to current date
tell cd
    set its year to y
    set its month to m
    set its day to d
    set its hours to h
    set its minutes to min
    set its seconds to s
end tell
adayzdone
źródło
Nie działa: błąd „Nie można uzyskać daty \” Wtorek, 12 kwietnia 2016 o 00:00 \ ”.” numer -1728
witam wszystkich
Czy to wciąż jest w twoim bloku informacyjnym, czy też go usunąłeś?
adayzdone 12.04.16
Tak, nadal znajduje się w bloku tell. Robi się tam również coś innego, ale poza blokiem informacyjnym działa? Dlaczego?
cześć wszystkim,
Data pochodzi ze standardowych dodatków, a nie z aplikacji
adayzdone
Wiem, że to nie jest aplikacja, ale jak powiedzieć jej, aby uruchamiała polecenia?
cześć wszystkim
0

Twoja składnia jest nieprawidłowa.

Po pierwsze, nie musisz niczego „mówić”. Pozostaw „Tell” i „End Tell” wyłączone. Daty nie są specyficzne dla żadnej konkretnej aplikacji, więc nie musisz „mówić”. To może być cały problem.

Po drugie, jeśli zrobisz coś takiego:

set a to current date

Otrzymasz taki wynik (niezupełnie taki, ponieważ jest on specyficzny dla twoich preferencji daty i godziny):

data „Wtorek, 12 kwietnia 2016 o 10:39:44”

To jest „wynik” powyższego skryptu jednowierszowego. Zwróć uwagę na przecinki.

Twój skrypt, w którym ustawiłeś „b”, nie zawiera przecinków i może być tam, gdzie idzie źle. Myślę, że jeśli uruchomisz skrypt jednowierszowy, jak pokazałem powyżej, zobaczysz odpowiednią składnię. Gdy go zobaczysz, możesz zmienić ciąg w wierszu, w którym ustawiłeś b, aby dopasować składnię, jakiej oczekuje system. Jeśli korzystasz z właściwej składni (tzn. Dopasowując to, co otrzymujesz, gdy pytasz o bieżącą datę), problem polega wyłącznie na tym, że umieściłeś polecenia daty w bloku „powiedz”, a aplikacja, o której mówisz „nie rozumie, jak to zrobić. Pozostaw opakowanie „powiedz” wyłączone. Zrób swoje randkowe rzeczy poza tym. Twoja data „b” będzie nadal działać później w skrypcie, w bloku tell. Ale musisz wykonać swoją randkę poza blokiem Tell.

Christian Boyce
źródło