Description du scénario
Ce côté doit aller régulièrement sur un ftp pour télécharger les données et modifier leurs champs. Le processus est le suivant :
- Télécharger d'un endroit un fichier nommé "202301081014XXXX.REQ" au format de données xml
- Modifier les données d'un des champs de S001 dont le contenu est "1234" Changer le en "abcd"
- Si la modification est terminée, créer un fichier avec le même nom et le nommer "202301081014XXXX.REQ.OK" 4.Envoyer les deux données créées vers un autre chemin ftp
Actuellement, j'ai essayé l'action suivante
- via des outils de script d'application Mac
-
L'opération d'enregistrement de l'écran est la suivante
tell application "Finder" activate open document file "202301081014N1234.REQ" of folder "Downloads" of folder "blue2" of folder "Users" of startup disk using application file "BBEdit.app" of folder "Applications" of startup disk end tell tell application "BBEdit" activate open find window find "1234" searching in text 1 of text document id 829 with selecting match set characters 406 thru 428 of text document id 829 to "abcd" select insertion point after characters 406 thru 428 of text document id 829 save text document id 829 end tell
Problèmes rencontrés
Parce que les noms des données sont différents, j'ai lu les documents officiels mais je ne sais pas comment définir la portée. Et le champ est à une position différente, donc je ne peux pas exécuter le AppleScript enregistré.
0 votes
BBEdit possède un dictionnaire de scripts étendu - par exemple, la commande
find
renverra un enregistrement contenant une référence à la plage de caractères d'une correspondance.0 votes
AppleScript n'est pas l'outil idéal à utiliser ici. Vous feriez probablement beaucoup mieux avec un script Bash (ligne de commande) utilisant
sed
ouawk
pour trouver/remplacer rapidement et efficacement des éléments de texte.0 votes
Aussi, ne collez pas une capture d'écran de votre code. Postez le texte réel et formatez-le en conséquence. Quiconque souhaite tester votre code ne pourra pas le faire à moins de le retaper manuellement. Il est peu probable que les gens veuillent faire cela.
0 votes
@Allan merci pour vos conseils, je vais essayer sed / awk pour utiliser
0 votes
@red_menace oui, j'ai utilisé le
find
mais il reste toujours l'identifiant du document, donc si j'ouvre un autre fichier et que je veux utiliser des scripts, ça ne fonctionnera pas.