根据Windows批处理文件中的用户输入制作“ x”份数

时间:2018-09-25 03:58:03

标签: batch-file

每个人。我知道可以使用其他平台更好地解决此问题,但是批处理文件现在就足够了。这是我目前拥有的:

@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 :(得分:2)

由于文件必须具有不同的名称,因此我假设您要在文件名后附加序列号,例如%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
)

上面的代码段还具有最小化文件打开/追加操作并确保每行末尾没有空格的优点。