2011-08-26 28 views
11

Tôi phải viết một bản tóm tắt để tự động hóa một thư mục tùy thuộc vào người dùng. Trình chỉnh sửa Applescript ném lỗi này.nối một chuỗi và một biến thành một chuỗi trong bảng số

Dòng kết thúc không được theo sau số nhận dạng này.

Đây là phần của tập lệnh đang ném lỗi.

try 
    set short_name to do shell script "whoami" 
    set path to "afp://fileserver.local/Faculty/" & short_name 
    mount volume path as user name short_name 
end try 
+0

Tôi nên thêm rằng short_name ở cuối dòng 3 được tô sáng. – jeremyjjbrown

+0

Lưu ý nhanh: Bạn không nên nhìn thấy bất kỳ lỗi nào vì tập lệnh của bạn nằm trong khối 'try'. – fireshadow52

+0

Câu hỏi này đã được xem hàng nghìn lần và chỉ được bỏ phiếu một lần! – jeremyjjbrown

Trả lời

14

path không được là tên biến.

try 
    set short_name to do shell script "whoami" 
    set p to "afp://fileserver.local/Faculty/" & short_name 
    display dialog p 
end try 

Hoạt động tốt.

8

Tôi đồng ý với Bertrand, vấn đề của bạn là sử dụng "đường dẫn" làm biến. Một số từ có ý nghĩa đặc biệt đối với bản ghi chép và không thể được sử dụng làm biến, đường dẫn là một trong số chúng. Bạn sẽ nhận thấy rằng khi bạn biên dịch mã, đường dẫn không chuyển sang màu xanh giống như các biến khác cho biết nó đặc biệt.

Nếu bạn vẫn muốn sử dụng "đường dẫn" làm biến bạn có thể làm. Trong bản ghi chép, bạn có thể đặt "|" xung quanh biến để chỉ ra cho applescript rằng nó là một biến. Vì vậy, điều này sẽ làm việc.

try 
    set short_name to do shell script "whoami" 
    set |path| to "afp://fileserver.local/Faculty/" & short_name 
    mount volume |path| as user name short_name 
end try 

Lưu ý rằng việc sử dụng kỹ thuật này, bạn thực sự có thể có một biến trong một vài từ như ...

set |the path| to "afp://fileserver.local/Faculty/" & short_name 

Một chú thích cuối cùng ... có một phương pháp AppleScript để có được tên người dùng ngắn một người ...

set short_name to short user name of (get system info) 
+0

+1, nhưng tôi sẽ không đồng ý với bạn về 'set short_name thành tên người dùng ngắn gọn (nhận thông tin hệ thống)'. Trên máy tính của tôi, nó mất khoảng 2 giây để chạy. –

+0

Tôi đồng ý (nhận thông tin hệ thống) rất chậm. "làm kịch bản shell" whoami "" nhanh hơn nhiều – jeremyjjbrown

Các vấn đề liên quan