2017-10-17 3 views
0

Markdown 파일을 PDF로 변환하는 스크립트를 작성하고 있습니다. Pandoc이 지원합니다.파일이 .double.extension 인 경우 Windows CMD 확장 파일 이름

C:\Users\User\Documents\English\PAPER1.md을 스크립트로 드래그하면 C:\Users\User\Documents\English\PDFs\PAPER1.pdf이 생성됩니다.

그러나 이는 특정 상황에서, 입력 I 파일명 만 여전히 Something.pdf 출력을 원하는 경우 Something.md.txt 될 것이다

set INPUT=%1 
set PDFDIR=%~dp1\PDFs 
set PDF=%PDFDIR%\%~n1.pdf 

의해 스크립트의 헤더에 달성된다. 세 개 이상의 확장을 제거하는 것은 아마도 필요하지 않거나 바람직하지 않습니다.

그러나 현재 설치에서는 하나의 확장 만 제거하여 Something.md.pdf을 생성합니다.

그러나, %~nn1.pdf 내가 "두 개의 확장"을 가진 파일의 맨 파일 이름을 얻는 방법

The following usage of the path operator in batch-parameter 
substitution is invalid: %~np 

을주는 일,도 set p=%~n1set PDF=%~np을 수행하지 않는 이유는 무엇입니까? 쌍 따옴표를 사용하여 가능한

Set "INPUT=%~1" 
Set "PDFDIR=%~dp1PDFs" 
For %%A In ("%~dpn1") Do Set "PDF=%PDFDIR%\%%~nA.pdf" 

입력 내용의에는 보증인이 최선의 방법을 사용하시기 바랍니다 없기 때문에 항상 이러한 변수를 참조 :

+2

두 개의 확장자로 작동합니다 : '%% a in ("% filename %") do %% b ("%% ~ Na") do "newName = %% ~ Nb.pdf " – Aacini

+1

파일 이름에 실제 기간이 없다고 가정하십시오. 파일 이름에 필요한 : FOR/F "tokens = 1 * delims =." %% G IN ("% ~ nx1") do set name = %% G' – Squashman

답변

1

나는에 스크립트의 제공 헤더에서 모든 라인을 변경할 것 :

Echo "%INPUT%" 
Echo "%PDFDIR%" 
Echo "%PDF%" 
관련 문제