该脚本接收用户输入然后崩溃
尝试重命名文件和变量,并合并变量。
os.system('df -hT /')
脚本崩溃
编辑:这是更新的代码。我在目标位置创建目标文件。但是,它也会在桌面上创建文件。不知道在这里编辑是我应该做的还是提出一个新问题。
cls
set /p FN="First Name: "
set /p LN="SECOND Name: "
set folder="%FN% %LN%"
set path="F:\ADMIN\USERS\_USER"
set final = %path%\%folder%
if not exist %final% (
mkdir %path%\%folder%
mkdir %path%\%folder%\Info
mkdir %path%\%folder%\JOB
mkdir %path%\%folder%\HR
mkdir %path%\%folder%\Department
copy %path%\%folder%\_takeoff.xlsx %path%\%folder%
) else (
echo %path%\%folder% + " is already Created"
)
pause
答案 0 :(得分:0)
问题是您在set final = %path%\%folder%
行上的空格;如果您将这些多余的空间拿出来,应该没问题。
为更进一步,我强烈建议在没有引号的地方添加引号,并将其移到set
语句中的变量之前,以考虑用户可能添加的任何空格:
cls
set /p "FN=First Name: "
set /p "LN=SECOND Name: "
set "folder=%FN% %LN%"
set "mypath=F:\ADMIN\USERS\_USER"
set "final=%mypath%\%folder%"
if not exist "%final%" (
mkdir "%final%"
mkdir "%final%\Info"
mkdir "%final%\JOB"
mkdir "%final%\HR"
mkdir "%final%\Department"
copy "%mypath%\_takeoff.xlsx" "%final%"
) else (
echo %final% is already Created
)
pause
您也不需要回声中的引号,除非您只希望它回显引号。
答案 1 :(得分:0)
一个简单的主意:
PushD "F:\ADMIN\USERS\_USER" 2>NUL || Exit /B
ClS
Set "FN="
Set /P "FN=First Name: "
Set "LN="
Set /P "LN=Surname: "
Rem Note: You should perform some input verification here.
MD "%FN% %LN%" "%FN% %LN%\Info" "%FN% %LN%\JOB" "%FN% %LN%\HR" "%FN% %LN%%\Department" 2>NUL
If Not Exist "%FN% %LN%\_takeoff.xlsx" Copy "_takeoff.xlsx" "%FN% %LN%"
请注意Rem
深色线,您目前无法控制最终用户在每个提示符下输入的内容,他们不能输入任何内容(包括无效字符)!