2015-02-16 5 views
-2

Предположим, что на моей машине с Windows у меня есть папка с именем root. В этой папке у меня есть около 500 подпапок по имени John-doe, Sara-smith, Nicola-sheperd и т.д. Внутри каждой папки у меня есть около 6-7 файлов с различными расширениями, такими как .png, .jpg.pdf, .tex, .idx, .txt, .aux и т.д. Кроме того, обратите внимание, что в каждой папке могут быть два или более файлов pdf, но только одно из них совпадает с именем его папки.
Теперь я хочу, чтобы экспортировать pdf имена файлов, которые таким же именем, как и их папки из этих 500 папок и импортировать их в mypdfnames.tex файл в папке root, как показано ниже:Как экспортировать мои имена файлов PDF из примерно 500 папок?

\documentclass{article} 
\usepackage{lipsum} 
\begin{document} 
\include{John-doe/John-doe.pdf} 
\include{Sara-smith/Sara-smith.pdf} 
\include{Nicola-sheperd/Nicola-sheperd.pdf} 
... 
\end{document} 

Как я могу это сделать ?
Я новичок в пакетных файлах, поэтому, пожалуйста, предоставьте мне полный код.

ответ

1

Вот скрипт, который мог бы стать скелетом для вашего собственного решения:

@ECHO OFF >NUL 
@SETLOCAL enableextensions disabledelayedexpansion 

    rem full path to "root" directory 
set "myroot=D:\bat\StackOverflow\files\root" 
set "myextn=txt" 

    rem loop through "*.%myextn%" files (recurse subfolders) 
For /R "%myroot%" %%G in (*.txt) do (

     rem find out last item in path 
    for /F "tokens=*" %%H in ("%%~dpG.") do (

     rem is filename==foldername.txt? 
    if /i "%%~nxG"=="%%~nxH.%myextn%" (
     rem redirect next echo: >>"%myroot%\mypdfnames.tex" 
     echo(\include{%%~nxH/%%~nxG} 
    ) else (
     rem sample only 
     echo(omitted %%~nxG # %%~nxH.%myextn% 
    ) 
) 
) 
@ENDLOCAL 
goto :eof 

Разъяснения по rem комментарии в коде. Измените myroot (путь) и myextn (расширение) и добавьте дополнительную запись в файл "%myroot%\mypdfnames.tex".

Ресурсы:

Выход:

=>dir /b /s D:\bat\StackOverflow\files\root\*.txt 
D:\bat\StackOverflow\files\root\Ian-ionescu\Ian-ionescuY.txt 
D:\bat\StackOverflow\files\root\Ian-ionescu\Nicola-sheperd.txt 
D:\bat\StackOverflow\files\root\John-doe\John-doe.txt 
D:\bat\StackOverflow\files\root\John-doe\John-doeA.txt 
D:\bat\StackOverflow\files\root\Nicola-sheperd\Nicola-sheperdX.txt 
D:\bat\StackOverflow\files\root\Sara-smith\Sara-smith.txt 
D:\bat\StackOverflow\files\root\Sara-smith\Sara-smithZ.txt 

=>D:\bat\StackOverflow\28551216.bat 
omitted Ian-ionescuY.txt # Ian-ionescu.txt 
omitted Nicola-sheperd.txt # Ian-ionescu.txt 
\include{John-doe/John-doe.txt} 
omitted John-doeA.txt # John-doe.txt 
omitted Nicola-sheperdX.txt # Nicola-sheperd.txt 
\include{Sara-smith/Sara-smith.txt} 
omitted Sara-smithZ.txt # Sara-smith.txt 

 Смежные вопросы

  • Нет связанных вопросов^_^