Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 12 sur 12
  1. #1
    Hello,

    Dites j'ai un petit soucis, en ce moment j'utilise pas mal Markdown et pour l'assemblage je dois apparemment utiliser le petit logiciel pandoc. Je suis sur windows et j'utilise powershell. Pour expliquer mon soucis je vais prendre un exemple :

    - Imaginons que j'ai 5 fichiers Markdown (01-fichier1.md, 02-fichier2.md... 05-fichier5.md) que je veux regrouper en un fichier, pour faire simple :

    Code:
    pandoc -o output.pdf *.md
    Or, la commande ne marche pas. En effet *.md n'est pas reconnu en powershell mais uniquement en shell sh ou bash. Pour bien faire faudrait faire cela:

    Code:
    pandoc -o output.pdf 01-fichier1.md 02-fichier2.md 03-fichier3.md 04-fichier4.md 05-fichier5.md
    Là ca marche très bien, cependant vous imaginez si le dossier contient des centaines de fichier md.... ca deviendrais chiant

    La question est simple : Y a t-il un moyen en powershell ou cmd standard capable de gérer le *.md, afin de lister tout les fichier .md présent ?

    Merci d'avance.
    Dernière modification par Whiskey ; 14/03/2021 à 13h16.

  2. #2
    Si je ne m'abuse, ta commande *.md dépend du programme pandoc, pas de powershell ou autres. Du coup, s'ils n'ont pas prévu de comprendre *.md, ça ne marchera jamais.
    J'ai fait le test en powershell, un simple
    copy *.txt .\toto\

    marche. Le souci ne vient donc pas de là.

  3. #3
    Citation Envoyé par deathdigger Voir le message
    Si je ne m'abuse, ta commande *.md dépend du programme pandoc, pas de powershell ou autres. Du coup, s'ils n'ont pas prévu de comprendre *.md, ça ne marchera jamais.
    J'ai fait le test en powershell, un simple
    copy *.txt .\toto\

    marche. Le souci ne vient donc pas de là.
    Effectivement, j'ai testé ta commande et cela marche. Par contre je comprend pas, la plupart des tutos sur pandoc que j'ai pu voir utilise tres bien *.md et ca marche chez eux.... A ne rien comprendre

    Bon cela m'envoi sur une autre piste. Je continu a chercher

    Merci en tout cas pour ta réponse.
    Dernière modification par Whiskey ; 13/03/2021 à 19h30.

  4. #4
    Je connais pas bien ni powershell ni pandoc. Mais Internet connait powershell. Pour cmd, on doit pouvoir faire quelque chose à base de for, mais c'est moche.

    Sinon, si tu aimes bash tu peux l'utiliser sous Windows. MSYS2 installe bash et plein d'autres outils. Git for Windows fournit également un bash.

  5. #5
    Citation Envoyé par Cwningen Voir le message
    Je connais pas bien ni powershell ni pandoc. Mais Internet connait powershell. Pour cmd, on doit pouvoir faire quelque chose à base de for, mais c'est moche.

    Sinon, si tu aimes bash tu peux l'utiliser sous Windows. MSYS2 installe bash et plein d'autres outils. Git for Windows fournit également un bash.
    Ce serait une solution effectivement, je garde cela sous le coude. Cependant, comme le dit deathdigger, *.md semble bien marché sur du powershell, mais cela foire sur pandoc (dernière version compilé pour windows). Faudrait tester avec une ancienne version de pandoc, peut etre un soucis de version.

    EDIT:

    Bon je viens de tester avec git-bash et ca passe crème

    Cela veut dire que powershell/cmd de base ne supporte pas le *.md de base, mais certaines commande powershell tel que copy supporte au sein de l'application. Bon à savoir.

    Me reste 2 possibilités :

    - Utiliser git-bash
    - Utiliser un langage/script (en Go par exemple, ou via node) pour générer le tout.

    Merci pour ta réponse
    Dernière modification par Whiskey ; 14/03/2021 à 00h53.

  6. #6
    T'as essayé en fournissant le path vers le dossier ?

  7. #7
    Tu as lu le lien stackoverflow ? Il y a des commandes qui supportent l'étoile et dont le rôle est de te donner une liste de fichier : dir et Get-ChildItem. Il faut les combiner avec une substitution de commande ("$(...)" en powershell si j'ai bien compris). C'est un peu plus verbeux que bash mais ça passe (surtout comparé aux solutions de cmd.exe).

  8. #8
    En gros dès que je lance pandoc avec *.md dedans il me met :

    Code:
    pandoc.exe: *.md: openBinaryFile: invalid argument (Invalid argument)
    Et cela en powershell ou simple cmd (pas en bash).

    La plupart de mes recherches sur cette erreur affiche que le soucis viens bien de powershell ou cmd et que c'est propre a du bash. Et la solution est : Soit passer sur un bash, soit taper tout les fichiers ^^

    - - - Mise à jour - - -

    Citation Envoyé par deathdigger Voir le message
    T'as essayé en fournissant le path vers le dossier ?
    Tout les fichier sont a la racine pour le test, donc normalement, il devrait trouver les fichiers. Ce qui est le cas si je tape la meme commande dans un client bash.

  9. #9
    Essaye
    Code:
    pandoc -o output.pdf "$(Get-ChildItem *.md -Name)"

  10. #10
    Citation Envoyé par Cwningen Voir le message
    Essaye
    Code:
    pandoc -o output.pdf "$(Get-ChildItem *.md -Name)"
    Avec ta commande j'obtiens :

    Code HTML:
    pandoc.exe: 00-metadata.md 01-readme.md 02-readme2.md: openBinaryFile: does not exist (No such file or directory)
    Techniquement il liste bien tout les fichier md, mais pandoc refuse de le traiter Mais l'idée était intéressante.

  11. #11
    Ok, c'est passé comme une seule chaine. Essaye sans les guillemets :
    Code:
    pandoc -o output.pdf $(Get-ChildItem *.md -Name)
    ou encore
    Code:
    pandoc -o output.pdf $(dir *.md)
    Il y aura peut-être des problèmes si tes fichiers ont des espaces dans leurs noms.

    Désolé, j'ai pas de powershell sous la main pour essayer moi-même.

  12. #12
    Citation Envoyé par Cwningen Voir le message
    Ok, c'est passé comme une seule chaine. Essaye sans les guillemets :
    Code:
    pandoc -o output.pdf $(Get-ChildItem *.md -Name)
    ou encore
    Code:
    pandoc -o output.pdf $(dir *.md)
    Il y aura peut-être des problèmes si tes fichiers ont des espaces dans leurs noms.

    Désolé, j'ai pas de powershell sous la main pour essayer moi-même.
    Je viens de tester tes 2 commandes et .... cela fonctionne. Bon ben problème résolu

    Merci pour ton aide.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •