2009-01-13 5 views

Répondre

2

En supposant que le corps que vous voulez créer est quelque chose que vous pouvez écrire à SYS $ OUTPUT (par exemple, la sortie d'un procédure de commande ou commande DCL), vous pouvez utiliser DCL PIPE pour tuyau la sortie dans VMS mail, comme:

$ PIPE write sys$output "The date is ", f$cvtime() | MAIL SYS$INPUT smith/SUBJ="Piping in DCL" 

ou

$ PIPE DIR *.LOG | MAIL SYS$INPUT smith/SUBJ="Piping in DCL" 

la commande PIPE a été ajouté à OpenVMS V7.1. Si vous êtes en quelque sorte sur un système pré-7.1, votre seul choix est d'écrire dans un fichier temporaire et de le nettoyer.

Edit: Pour répondre à ce commentaire, si vous voulez éliminer les écrans interactifs de la commande Mail, vous pouvez rediriger SYS $ OUTPUT NLA0 :, comme dans:

$ PIPE DIR *.LOG | MAIL SYS$INPUT smith/SUBJ="Piping in DCL" > NLA0: 

messages d'erreur vont à SYS $ ERREUR, donc vous verrez toujours des échecs. Voir HELP PIPE pour plus de bonté.

+0

Génial. Merci! de toute façon pour ne pas imprimer "Entrez votre message ci-dessous.Appuyez sur CTRL/Z lorsque vous avez terminé, ou CTRL/C pour quitter:" sur la ligne de commande lorsque vous l'exécutez? – Keng

0

Demandez au script de créer un fichier temporaire pour contenir le corps du message.

Mail accepter un fichier texte sur la ligne de commande, comme la liste des utilisateurs et/STAB

Questions connexes