Je ne chargeais pas le package `pdftricks` avec l'option `[miktex]` comme vous l'indiquez, et du coup j'étais dans le `else` de `\ifmiktex%` et c'est la commande `touch` qui était utilisée pour créer un fichier vide avec pour nom le nom contenu dans `\tmpfile`. Cette commande est clairement une commande unix et ne fonctionne pas sous windows. Cette option `[miktext]` du package `pdftricks` signifie `"windows"` en définitive.
Donc `\usepackage[miktek]{pdftricks}` pour une utilisation sous windows (même avec une autre distribution latex que miktek sous windows)
Ensuite il manque `echo` à la commande de création de fichier (presque) vide sous windows
\immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2
`Echo` envoie sur le terminal ce qu'on tape en entrée (`rem`), `>` redirige cette sortie du terminal sur le fichier `\tmpfile` (nom du fichier défini précédemment par `\def\tmpfile{/tmp/w18-test-\the\year\the\month\the\day\the\time}`
`rem` (pour remarque) est un commentaire pour un fichier batch. Par exemple :
echo rem mon commentaire de batch > toto.txt
écrit `rem mon commentaire de batch` dans le fichier `toto.txt`. Si toto.txt est en fait un fichier batch toto.bat, `rem mon commentaire de batch` sera ignoré par l'exécution du batch.
Si le fichier n'existe pas au moment de la redirection il est créé pour pouvoir écrire dedans. Si `rem` n'est suivi par rien, c'est juste un commentaire vide qui fera une sorte de saut de ligne indiqué par `rem`
\immediate\write18{echo rem >"\tmpfile"}%%%%%% LDL-2
Crée donc le fichier `\tmpfile` pas tout à fait vide, mais avec un commentaire batch vide
rem
Les guillements du nom de fichier ne sont pas indispensables sauf si le nom du fichier contient des espaces