D
doc75
Guest
Hallo zusammen,
Hilfe... Ich brauche ein Skript, mit dem ich in einer Buchdatei alle Verknüpfungen aktualisieren kann. Dazu habe ich im Internet folgendes Skript gefunden:
if (app.books.length > 1){
myBook = myBookSelect();
}
else {
// Wiederholung des Öffnen-Dialogs so lange keine Buchdatei geöffnet ist
while (app.books.length <1){
var myBookFile = File.openDialog("Wähle eine Buchdatei");
var myBook = app.open(File(myBookFile));
}
myBook = app.books[0];
}
var myFolder = Folder.selectDialog("Choose a folder")+"";
var myDocs=myBook.bookContents;
for (oneDoc=0; oneDoc<myBook.bookContents.length; oneDoc++){
// öffne Dokument "oneBook" des Buches
myDoc = app.open(File(myDocs[oneDoc].fullName), false);
myLinks = myDoc.links;
for (oneLink=myLinks.length-1;oneLink>-1;oneLink--) {
myLink = myLinks[oneLink];
myName = String(File.encode(myLink.name));
myNewLink = File(myFolder + "/" + myName);
try{
myLink.relink(myNewLink);
myLink.update();
}
catch(e){
}
}
// Dokument schließen - Sichern ohne zu fragen
myDoc.close(SaveOptions.yes);
}
alert("Ready")
function myBookSelect(){
var myBooks = app.books;
var myBookNames = [];
for (oneBook = 0; oneBook < myBooks.length; oneBook++){
myBookNames.push(myBooks[oneBook].name)
}
var myDialog = app.dialogs.add({name:"Wähle ein Buch"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Buch:"});
}
with(dialogColumns.add()){
var myField = dropdowns.add({stringList:myBookNames, selectedIndex:0});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var aBook = (myBooks[myField.selectedIndex]);
//alert(aBook.name);
myDialog.destroy();
}
else{
myDialog.destroy();
}
return aBook;
}
So weit so gut. Das Skript läuft. Ich werde nach der zu durchsuchenden Buchdatei gefragt. Dann muss ich einen Ordner wählen, in dem meine verknüpften Objekte liegen. Und dieser Auswahldialog lässt nur einen Ordner auf den lokalen Festplatten C u. D, sowie dem DVD- Laufwerk zu. Meine Objekte liegen aber auf einem Netzlaufwerk. Was muss ich im Skript ändern, um auf meine Netzlaufwerke zugreifen zu können?
Hat jemand eine zündende Idee?
Vielen Dank im Voraus,
Gruß doc
Hilfe... Ich brauche ein Skript, mit dem ich in einer Buchdatei alle Verknüpfungen aktualisieren kann. Dazu habe ich im Internet folgendes Skript gefunden:
if (app.books.length > 1){
myBook = myBookSelect();
}
else {
// Wiederholung des Öffnen-Dialogs so lange keine Buchdatei geöffnet ist
while (app.books.length <1){
var myBookFile = File.openDialog("Wähle eine Buchdatei");
var myBook = app.open(File(myBookFile));
}
myBook = app.books[0];
}
var myFolder = Folder.selectDialog("Choose a folder")+"";
var myDocs=myBook.bookContents;
for (oneDoc=0; oneDoc<myBook.bookContents.length; oneDoc++){
// öffne Dokument "oneBook" des Buches
myDoc = app.open(File(myDocs[oneDoc].fullName), false);
myLinks = myDoc.links;
for (oneLink=myLinks.length-1;oneLink>-1;oneLink--) {
myLink = myLinks[oneLink];
myName = String(File.encode(myLink.name));
myNewLink = File(myFolder + "/" + myName);
try{
myLink.relink(myNewLink);
myLink.update();
}
catch(e){
}
}
// Dokument schließen - Sichern ohne zu fragen
myDoc.close(SaveOptions.yes);
}
alert("Ready")
function myBookSelect(){
var myBooks = app.books;
var myBookNames = [];
for (oneBook = 0; oneBook < myBooks.length; oneBook++){
myBookNames.push(myBooks[oneBook].name)
}
var myDialog = app.dialogs.add({name:"Wähle ein Buch"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Buch:"});
}
with(dialogColumns.add()){
var myField = dropdowns.add({stringList:myBookNames, selectedIndex:0});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var aBook = (myBooks[myField.selectedIndex]);
//alert(aBook.name);
myDialog.destroy();
}
else{
myDialog.destroy();
}
return aBook;
}
So weit so gut. Das Skript läuft. Ich werde nach der zu durchsuchenden Buchdatei gefragt. Dann muss ich einen Ordner wählen, in dem meine verknüpften Objekte liegen. Und dieser Auswahldialog lässt nur einen Ordner auf den lokalen Festplatten C u. D, sowie dem DVD- Laufwerk zu. Meine Objekte liegen aber auf einem Netzlaufwerk. Was muss ich im Skript ändern, um auf meine Netzlaufwerke zugreifen zu können?
Hat jemand eine zündende Idee?
Vielen Dank im Voraus,
Gruß doc