Сделайте количество копий "х" на основе пользовательского ввода в пакетном файле Windows - PullRequest
0 голосов
/ 25 сентября 2018

все.Я знаю, что эту проблему лучше решить с другой платформой, но пакетный файл - это все, что у меня есть сейчас.Вот что у меня сейчас есть:

@echo off
set Output="%USERPROFILE%\desktop"

echo NOTE: Do not use leading-zeros when entering month/day for study date and DOB
echo     -----------------------------------------------------------------------------

set /p TestNum=Enter the test number: 
set /p SeriesInstance=How many images are in this series?: 
set /p StudyDate=Enter the date (ex 1-1-2018) of the study: 
set /p StudyTime=Enter the time (ex 1448) of the study: 
set /p AccessionNumber=Enter the accession number: 
set /p ProcType=Enter the study type: 
set /p PhysName=Enter the referring physician's name: 
set /p StudyDesc=Enter a study description: 
set /p PtName1=Enter the patient's first name: 
set /p PtName2=Enter the patient's last name: 
set /p PtID=Enter the patient's ID (Last 4 of SSN,year,month,day - NO COMMAS): 
set /p PtDOB=Enter the patient's DOB (ex 1/1/1984): 
set /p PtGender=Enter the patient's gender (M or F): 

echo 0020000D   %TestNum% >> %Output%\%PtID%.txt
echo 0020000E   %SeriesInstance% >> %Output%\%PtID%.txt
echo 00080018   %SeriesInstance% >> %Output%\%PtID%.txt
echo 00080020   %StudyDate% >> %Output%\%PtID%.txt
echo 00080030   %StudyTime% >> %Output%\%PtID%.txt
echo 00080050   %AccessionNumber% >> %Output%\%PtID%.txt
echo 00080060   %ProcType% >> %Output%\%PtID%.txt
echo 00080090   %PhysName% >> %Output%\%PtID%.txt
echo 00081030   %StudyDesc% >> %Output%\%PtID%.txt
echo 00100010   %PtName2%,%PtName1% >> %Output%\%PtID%.txt
echo 00100020   %PtID% >> %Output%\%PtID%.txt
echo 00100030   %PtDOB% >> %Output%\%PtID%.txt
echo 00100040   %PtGender% >> %Output%\%PtID%.txt

echo.
echo File has been placed in %Output%
pause

Я пытаюсь сделать следующее: если для SeriesInstance введено число больше 1, я хочу, чтобы пакетный файл сделал такое же количество копий, что и я.файл, единственное различие между файлами состоит в том, что две строки, которые выводят SeriesInstance, увеличиваются на 1, пока не достигнут значения SeriesInstance.

Извините, если я объясняю это ужасно: - \

Я ценю любую помощь, которую вы можете оказать!

1 Ответ

0 голосов
/ 25 сентября 2018

Поскольку файлы должны иметь разные имена, я предполагаю, что вы хотите добавить порядковый номер к имени файла, например %Output%\%PtID%_X.txt, где X - порядковый номер.

Вв этом случае вы можете просто использовать for для создания цикла, например:

for /l %%a in (1,1,%SeriesInstance%) do (
  (
    echo 0020000D   %TestNum%
    echo 0020000E   %%a
    echo 00080018   %%a
    echo 00080020   %StudyDate%
    rem rest of echo statements here
  ) >%Output%/%PtID%_%%a.txt
)

Этот фрагмент выше также имеет преимущество в том, что минимизирует операции открытия / добавления файлов и гарантирует отсутствие пробелов в концекаждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...