Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 15.08.2007 - 17:21 Titel: CD Daten auf selbst gewählten lokalen Pfad kopieren |
|
|
Hi,
an folgendem bin ich grad am kniffeln:
von einer image cd (läuft unter flash) wird ein applescript gestartet, das funktioniert problemlos.
dieses also soll nun den kompletten inhalt (mit unterordnern) der cd auf einen selbst gewählten pfad auf der lokalen platte kopieren.
die ermittlung des pfades der cd habe ich an den anfang gestellt:
*************************************************************
set StoredPath to (path to me) as string
set oldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set itemCount to (count text items of StoredPath)
set lastItem to the last text item of StoredPath
if lastItem = "" then
set itemCount to itemCount - 2 -- bei Pfad zu einem Ordner
else
set itemCount to itemCount - 1 -- bei Pfad zu einer Datei
end if
set myPath to \254
text 1 thru text item itemCount of StoredPath & ":"
set AppleScript's text item delimiters to oldDelims
*************************************************************
als nächstes würde ich den zielpfad waehlen lassen:
*************************************************************
set ZielOrdner to choose folder with prompt "Ziel-Ordner auswaehlen"
try
tell application "Finder"
set these_files to every file of the source_folder
repeat with i from 1 to the count of these_files
set this_path to (duplicate ((item i of these_files) as string) to \254
ZielOrdner with replacing) as alias
end repeat
end tell
on error error_message
display dialog error_message buttons {"OK"} default button 1
end try
*************************************************************
nur wie übergebe ich jetzt den als erstes ermittelten pfad der cd so, das er den gesamten ordner, also den cd namen als wurzelverzeichnis mit sämtlichen unterordnern auf den zielpfad kopiert? hab das mal mit einzelnen dateien geschafft, aber er hat nie die unterordner kopiert
...wenn der kopiervorgang erfolgreich beendet ist, soll von einer lokalen datei (liegend im gerade kopierten verzeichnis) eine Alias Datei auf dem Desktop erstellt werden.
Der Code dazu hat eigentlich gut funktioniert:
*************************************************************
try
set totalPath to (myPath & "intro_lokal") as alias
tell application "Finder"
make new alias file to totalPath at desktop with properties {name:"starte_intro"}
end tell
on error errMsg
display dialog errMsg
end try
*************************************************************
Kann mir jemand helfen die o.g. Puzzle Teile richtig zusammenzufügen?
Bin, weil AS-Neuling da jetzt etwas überfordert ^^
Danke schon mal für Eure Mühe,
Gruß noobi |
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 15.08.2007 - 18:59 Titel: |
|
|
das kopieren ist nicht wirklich schwierig (ziel und quelle sind in diesem fall vom typ alias). beispiel:
set source to (choose folder) -- cd auswählen
set targetfolder to (choose folder) -- zielordner auswählen
tell application "Finder"
duplicate source to targetfolder
-- kopiert alles in einen ordner der den namen der cd trägt
end tell
|
|
Nach oben |
|
 |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 15.08.2007 - 19:14 Titel: |
|
|
vielen dank für die schnelle antwort...werd ich gleich mal versuchen...
kann man nach der ganzen kopier routine aus diesem script dann ein anderes script starten?
nämlich eines, das das alias (also eine kopierte datei) erzeugen kann?
das problem was ich sehe ist, das er ja erst warten muss, bis dieses script auf die lokale platte kopiert ist...
der code oben für das alias erzeugen funktioniert sehr gut, brauche also einen befehl der eine externe as-anwendung startet...
danke nochmal
iScript hat Folgendes geschrieben: | das kopieren ist nicht wirklich schwierig (ziel und quelle sind in diesem fall vom typ alias). beispiel:
set source to (choose folder) -- cd auswählen
set targetfolder to (choose folder) -- zielordner auswählen
tell application "Finder"
duplicate source to targetfolder
-- kopiert alles in einen ordner der den namen der cd trägt
end tell
|
|
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 15.08.2007 - 19:56 Titel: |
|
|
noobi hat Folgendes geschrieben: | kann man nach der ganzen kopier routine aus diesem script dann ein anderes script starten?
... warten muss, bis dieses script auf die lokale platte kopiert ist... |
das ist nicht nötig: der kopiervorgang liefert erst dann ein ergebnis, wenn er abgeschlossen ist (jeder as-befehl liefert ein ergebnis), und erst dann geht's weiter im script.
du kannst deine alias-code-zeilen also problemlos direkt anhängen.
du kannst auch direkt aus dem result des kopiervorgangs dein alias erzeugen.
gruss, H =:o) L G I |
|
Nach oben |
|
 |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 16.08.2007 - 16:07 Titel: |
|
|
iScript hat Folgendes geschrieben: | noobi hat Folgendes geschrieben: | kann man nach der ganzen kopier routine aus diesem script dann ein anderes script starten?
... warten muss, bis dieses script auf die lokale platte kopiert ist... |
das ist nicht nötig: der kopiervorgang liefert erst dann ein ergebnis, wenn er abgeschlossen ist (jeder as-befehl liefert ein ergebnis), und erst dann geht's weiter im script.
du kannst deine alias-code-zeilen also problemlos direkt anhängen.
du kannst auch direkt aus dem result des kopiervorgangs dein alias erzeugen.
gruss, H = ) L G I |
...vielen dank, hat super geklappt . nur, jetzt schaffe ich es leider nicht, den richtigen pfad für den alias zu bauen. So habe ich es versucht:
*************************************************************
-- Erstellung des Alias Links und Kopie auf Desptop
try
set totalPath to (targetfolder & "sp_intro_lokal") as alias
tell application "Finder"
make new alias file to totalPath at desktop with properties {name:"AliasName"}
end tell
on error errMsg
display dialog errMsg
end try
*************************************************************
Er gibt eine Fehlermeldung zurück:
Can´t make {alias "Macintosh HD:Users:G6_01:Desktop:", "sp_intro_lokal"} into type alias.
Es fehlt also komplett der Name des kopierten Ordners (da er ja bis Desktop richtig geht, Ordner liegt auf Desktop), und das korrekte zusammensetzen des Pfades.
Hatte die Hoffnung, das deine variable "targetfolder" den kompletten neuen Pfad, also inkl. neuer Ordnername, enthält.
Es wäre glaube ich möglich in den Pfad den Ordnernamen zu schreiben, da ein kopierter Ordner genauso heissen darf wie eine CD, die sich gerade im Laufwerk befindet. Böse wird es nur, wenn schon mal ein Ordner mit dem Namen existiert und er automatisch sowas wie "Kopie 1" dahinterhängt.
Wäre also über eine Abfrage schon der bessere Weg.
!!!
Wenn ich ein AS in den gerade auf den Desktop kopierten Ordner lege, macht er (mit ermittlung des eigenen pfades, siehe oben) sauber eine Alias Datei.
Könnte man diese nicht aus dem vorherigen Script aufrufen oder bringt das Probleme mit sich?
danke und gruß
noobi |
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 16.08.2007 - 17:32 Titel: |
|
|
korrektur für dein script:
set totalPath to ((targetfolder as text) & "sp_intro_lokal") as alias
und hier die direkte verwurstung des ergebnisses des kopiervorgangs (ein alias des zielordners):
set source to (choose folder) -- cd auswählen
set targetfolder to (choose folder) -- zielordner auswählen
tell application "Finder"
make new alias file to (duplicate source to targetfolder with replacing) at desktop with properties {name:"Mein Wunderschönes Alias auf den gerade erzeugten Ordner"}
-- kopiert alles in einen ordner der den namen der cd trägt
end tell |
|
Nach oben |
|
 |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 16.08.2007 - 20:09 Titel: |
|
|
iScript hat Folgendes geschrieben: | korrektur für dein script:
set totalPath to ((targetfolder as text) & "sp_intro_lokal") as alias
und hier die direkte verwurstung des ergebnisses des kopiervorgangs (ein alias des zielordners):
set source to (choose folder) -- cd auswählen
set targetfolder to (choose folder) -- zielordner auswählen
tell application "Finder"
make new alias file to (duplicate source to targetfolder with replacing) at desktop with properties {name:"Mein Wunderschönes Alias auf den gerade erzeugten Ordner"}
-- kopiert alles in einen ordner der den namen der cd trägt
end tell |
klasse, funzt !! danke nochmal 4 help  |
|
Nach oben |
|
 |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 17.08.2007 - 11:24 Titel: |
|
|
noobi hat Folgendes geschrieben: | iScript hat Folgendes geschrieben: | korrektur für dein script:
set totalPath to ((targetfolder as text) & "sp_intro_lokal") as alias
und hier die direkte verwurstung des ergebnisses des kopiervorgangs (ein alias des zielordners):
set source to (choose folder) -- cd auswählen
set targetfolder to (choose folder) -- zielordner auswählen
tell application "Finder"
make new alias file to (duplicate source to targetfolder with replacing) at desktop with properties {name:"Mein Wunderschönes Alias auf den gerade erzeugten Ordner"}
-- kopiert alles in einen ordner der den namen der cd trägt
end tell |
klasse, funzt !! danke nochmal 4 help  |
doch noch ein kleiner nachtrag:
bei langsamen CD laufwerken oder großen zu kopierenden datenmengen auf der cd, gibt es manchmal eine timeout meldung, und das ganze wird nicht bis zum ende durchgeführt...kann man dieses timeout i-wie abschalten oder umgehen? |
|
Nach oben |
|
 |
iScript •---->


Anmeldedatum: 29.03.2001 Beiträge: 1116
|
Verfasst am: 17.08.2007 - 15:30 Titel: |
|
|
Guckst Du hier.
Gruss, H =:o) L G I |
|
Nach oben |
|
 |
spirigwi •----->


Anmeldedatum: 10.07.2003 Beiträge: 1517 Wohnort: Olten-CH
|
Verfasst am: 17.08.2007 - 18:50 Titel: |
|
|
oder Hier: http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=1297
derrene hat Folgendes geschrieben: | jedoch kommt nach ca. 20 min eine meldung, das die zeit überschritten ist und es hört auf. |
Ganz interessant scheint mir dazu auch die Bemerkung Snows, dass nicht zwingend das Problem gelöst sei mit "timeout erhöhen" trotz der wohl eindeutigen Meldung. Die Erklärung auf iScripts Seite finde ich Klasse ! (ich hätte noch das Sätzlein angefügt, dass 300 sec <=> 5 Min als Zeitbegriff-Erleichterung für not-quick-Kopf-Rechner like me )
PS: gerade erst entdeckt: bei Desktop-Objekten genügt offenbar auch der Satz: hat Folgendes geschrieben: | tell application "Finder" to make new folder with properties ¬
{name:"neuer_Konfuser_Ordner ", comment:"konfuuus"}
-->legt auf dem Schreibtisch neuen Ordner an |
_________________ Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Zuletzt bearbeitet von spirigwi am 18.08.2007 - 18:29, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
noobi •->

Anmeldedatum: 15.08.2007 Beiträge: 6
|
Verfasst am: 18.08.2007 - 17:23 Titel: |
|
|
danke dir nochmal für hilfe, läuft jetzt alles prima  |
|
Nach oben |
|
 |
|