windows - Behøver batchkommando til pandoc

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en mappe med undermapper i det, og jeg forsøger at konvertere docx til html.
Indtil videre har jeg fundet denne kommando:


@ECHO off
:selectfile
:: Clear any preexisting filename variables
SET filename=
:: Ask which file we're converting.
SET /p filename=Which file? (Don't include the .docx file extension):
CALL pandoc -o -s "\%filename\%".html --self-contained "\%filename\%".docx
GOTO selectfile


Problemet er at spørge mig om filnavnet, og jeg skal sætte denne flagermusfil inde i hver undermappe for at gøre jobbet.
Jeg vil gerne lave nogle ændringer, så det automatisk registrerer undermapper og konverterer alle docx-filer til html-filer med samme navn.
Er det muligt fyre?
Kan nogen ændre dette script?
tak virkelig værdsætter det.

Bedste reference


Følgende kommenterede kodestykke kan hjælpe:


@echo OFF
SETLOCAL EnableExtensions

rem iterate all *.docx recursively
for /f "delims=" \%\%G in ('dir /B /S *.docx  2^>NUL') do (

    rem check .html existence
    if not exist "\%\%~dpnG.html" (

        rem change the current directory and store the previous path for use by the POPD
        pushd "\%\%~dpG"

        rem `CALL pandoc` is merely displayed for debugging purposes
        rem               remove ECHO no sooner than debugged          
        ECHO CALL pandoc -o -s "\%\%~nG.html" --self-contained "\%\%~nxG"

        rem change directory back to the path most recently stored by the PUSHD command
        popd
    )
)


Rediger



  Jeg vil lave nogle ændringer, så det vil registrere undermapper
  automatisk
og konverter alle docx filer til html filer
  med samme navn.



Du kan integrere over kodestykket til dit script som følger:


@echo OFF
SETLOCAL EnableExtensions
:selectfile
:: Clear any preexisting filename variables
SET filename=
:: Ask which file we're converting.
SET /p filename=Which file? (Don't include the .docx file extension):

if not defined filename GOTO selectfile

rem iterate all \%filename\%.docx recursively
for /f "delims=" \%\%G in ('dir /B /S "\%filename\%.docx" 2^>NUL') do (
    rem check .html existence
    if not exist "\%\%~dpnG.html" (
        rem change the current directory and store the previous path for use by the POPD
        pushd "\%\%~dpG"
        rem `CALL pandoc` is merely displayed for debugging purposes
        rem               remove ECHO no sooner than debugged          
        ECHO CALL pandoc -o -s "\%\%~nG.html" --self-contained "\%\%~nxG"
        rem change directory back to the path most recently stored by the PUSHD command
        popd
    )
)

GOTO selectfile


Ressourcer (krævet læsning):



  • (kommandorel reference) [8] En A-Z-indeks på kommandolinjen Windows CMD

  • (yderligere særlige forhold) [9] Windows CMD Shell Command Line Syntax

  • (\%~G osv. særlig side) [10] Kommandolinjeparametre (Parametre)

  • (2>NUL osv. særlig side) [11] Omdirigering