我有一个 Windows 脚本,它只是将文件从一个目录移动并重命名到一系列子目录中。我希望让脚本提示用户输入文件的日期。目前我通过命令行传递它。但如果用户不提供值,它仍会运行。
这是我正在使用的当前脚本
cls
set myParam=%~1
echo %myParam%
move .\OTE_OTEAS23_CUNY_ENGL_ENRL*.CSV OTEAS-Stdnts_w_CUNY_ENGL_Enrl\OTE_OTEAS23_CUNY_ENGL_ENRL_%myParam%.csv
move OTE_OTEAS23_CUNY_MATH_ENR*.csv .\OTEAS-Stdnts_w_CUNY_MATH_Enrl\OTE_OTEAS23_CUNY_MATH_ENR_%myParam%.csv
move OTE_OTEAS23_EXT_DEG*.csv .\OTEAS-Ext_Degree_and_ENG_flag\OTE_OTEAS23_EXT_DEG_%myParam%.csv
move OTE_OTEAS23_EXT_ED_ENG_COL*.csv .\OTEAS-Ext_Education_Eng_Col_Lv\OTE_OTEAS23_EXT_ED_ENG_COL_%myParam%.csv
move OTE_OTEAS23_EXT_ED_MTH_HS*.csv .\OTEAS-Extern_Education_Math_HS\OTE_OTEAS23_EXT_ED_MTH_HS_%myParam%.csv
move OTE_OTEAS23_SRVC_IND_ACT*.csv .\OTEAS-Active_Service_Ind\OTE_OTEAS23_SRVC_IND_ACT_%myParam%.csv
move OTE_OTEAS23_STDNT_CUNY_DEGR*.csv .\OTEAS-CUNY_Awarded_Degrees\OTE_OTEAS23_STDNT_CUNY_DEGR_%myParam%.csv
move OTE_OTEAS23_STDNT_GRP_HIST*.csv .\OTEAS-Student_Group_Recs\OTE_OTEAS23_STDNT_GRP_HIST_%myParam%.csv
move OTE_OTEAS23_STDNT_LIST*.csv .\OTEAS-Admit_RDEF_Student_List\OTE_OTEAS23_STDNT_LIST_%myParam%.csv
move OTE_OTEAS23_STDNT_TEST_REC*.csv .\OTEAS-CF_Student_Test_Recs\OTE_OTEAS23_STDNT_TEST_REC_%myParam%.csv
move OTE_OTEAS23_TRNS_CREDS*.csv .\OTEAS-Transfer_Credit_ENG_MTH\OTE_OTEAS23_TRNS_CREDS_%myParam%.csv
答案1
您可以set /p
使用提示用户输入。
像这样:
set /p myParam=Enter a value:
答案2
在您的脚本中,您要求用户将日期作为参数提供给脚本。
假设您想强制执行此操作,最好在运行时提示用户输入一些内容。
这可以通过使用 set /p 来完成。
接下来,通过使用 IF 语句,您可以验证是否至少输入了某些内容,然后使用它。为了进行正确的验证,我建议使用 powershell,然后您可以检查输入的值是否实际上是日期。
考虑到这一点,你的脚本将会变成这样:
cls
set /p myParam=Please enter a date:
echo The date entered was: %myParam%.
if "%myParam%"=="" then goto exit
move .\OTE_OTEAS23_CUNY_ENGL_ENRL*.CSV OTEAS-Stdnts_w_CUNY_ENGL_Enrl\OTE_OTEAS23_CUNY_ENGL_ENRL_%myParam%.csv
move OTE_OTEAS23_CUNY_MATH_ENR*.csv .\OTEAS-Stdnts_w_CUNY_MATH_Enrl\OTE_OTEAS23_CUNY_MATH_ENR_%myParam%.csv
move OTE_OTEAS23_EXT_DEG*.csv .\OTEAS-Ext_Degree_and_ENG_flag\OTE_OTEAS23_EXT_DEG_%myParam%.csv
move OTE_OTEAS23_EXT_ED_ENG_COL*.csv .\OTEAS-Ext_Education_Eng_Col_Lv\OTE_OTEAS23_EXT_ED_ENG_COL_%myParam%.csv
move OTE_OTEAS23_EXT_ED_MTH_HS*.csv .\OTEAS-Extern_Education_Math_HS\OTE_OTEAS23_EXT_ED_MTH_HS_%myParam%.csv
move OTE_OTEAS23_SRVC_IND_ACT*.csv .\OTEAS-Active_Service_Ind\OTE_OTEAS23_SRVC_IND_ACT_%myParam%.csv
move OTE_OTEAS23_STDNT_CUNY_DEGR*.csv .\OTEAS-CUNY_Awarded_Degrees\OTE_OTEAS23_STDNT_CUNY_DEGR_%myParam%.csv
move OTE_OTEAS23_STDNT_GRP_HIST*.csv .\OTEAS-Student_Group_Recs\OTE_OTEAS23_STDNT_GRP_HIST_%myParam%.csv
move OTE_OTEAS23_STDNT_LIST*.csv .\OTEAS-Admit_RDEF_Student_List\OTE_OTEAS23_STDNT_LIST_%myParam%.csv
move OTE_OTEAS23_STDNT_TEST_REC*.csv .\OTEAS-CF_Student_Test_Recs\OTE_OTEAS23_STDNT_TEST_REC_%myParam%.csv
move OTE_OTEAS23_TRNS_CREDS*.csv .\OTEAS-Transfer_Credit_ENG_MTH\OTE_OTEAS23_TRNS_CREDS_%myParam%.csv
:exit