2017-01-09 5 views
-2

У меня есть несколько файлов .pdf, расположенных в одном каталоге.создать текстовый файл на основе имен файлов и каталогов - пакет

Пример имени файла в каталоге : test score_test score _9999999999_smith.pdf`.

мне нужно разобрать имя файла, чтобы быть: 9999999999|test score|smith|||||||

И мне также нужно напечатать расположение файла в текстовый файл с @ символ в начале.

Так это выглядит в текстовом файле: @D:\TEMP\test score_test score _9999999999_smith.pdf

Выходной файл в текстовом файле будет:

9999999999|test score|smith||||||| 
@D:\TEMP\test score_test score _9999999999_smith.pdf 

я только добралась до, насколько вывода каталога и имя файла в текстовый файл.

Сейчас я просто работаю над добавлением @ в начало каталога/имени файла.

dir /s/b *.pdf > C:\temp\test.txt 

Я попытался это:

@echo off 
set [email protected] 
dir *.pdf /b /s DO ECHO %var1%*.pdf > C:\temp\test.txt 

Я попытался это:

dir *.pdf /b /s ren *.pdf  "@"????????????????????????????????????????????????????????.pdf >>  C:\temp\test.txt 
+0

Вопросы просят нас ** рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта ** не относятся к теме для переполнения стека, поскольку они, как правило, привлекают упрямые ответы и спам. Вместо этого [описать проблему] (http://meta.stackoverflow.com/questions/254393) и что было сделано до сих пор, чтобы решить эту проблему. – nyedidikeke

+0

Команда 'for' resp. 'for/f' может делать то, что вы хотите. Ваш вопрос немного неоднозначен - две тестовые оценки строк всегда равны, а если нет, какой из них выбрать для вывода? – LotPings

+0

Спасибо. Оценка не всегда одинакова. Я извиняюсь, мне нужно будет вытащить второй результат теста или имя после первого _ из имени файла. – user7395572

ответ

0
@Echo off&SetLocal EnableExtensions 
PushD "C:\path\to\your\pdffolder" 
Set "FileOut=X:\path\to\LogFile.txt" 
:: initially clear Logfile 
Type Nul >"%FileOut%" 
:: first for enumerates the pdfs, second for /f parses the name 
:: to tokens %%A .. %%D delimited by underscore 
For %%F in (*.pdf) do For /f "tokens=1-4 delims=_" %%A in ("%%~nF" 
) Do (
>>"%FileOut%" Echo:%%C^|%%B^|%%D^|^|^|^|^|^|^| 
>>"%FileOut%" Echo:@%%F 
) 

Образец LogFile.txt

8888888888|test score |miller||||||| 
@test score_test score _8888888888_miller.pdf 
9999999999|test score |smith||||||| 
@test score_test score _9999999999_smith.pdf 
7777777777|test score |baker||||||| 
@test score_test score _7777777777_baker.pdf