![](/img/trans.png)
[英]How to create directory junctions for multiple sub-directories using PowerShell?
[英]Create Directory and sub directories crashing
該腳本接受用戶輸入然后崩潰
嘗試重命名文件和變量,以及組合變量。
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
腳本崩潰
編輯:這是更新的代碼。 我在預期位置創建預期文件。 但是,它也會在桌面上創建文件。 不確定在這里編輯是我應該做的還是提出一個新問題。
echo off
cls
echo Type The SO number, Customer, and Job named when asked. Then press Enter
echo.
set /p SO="SO #: "
set /p Customer="Customer Name: "
set /p JOB="Job Name: "
set folder="%SO%"_"%Customer%"_"%JOB%"
echo %folder%
set dir="F:\Sales\SALES FOLDER\_QUOTES"
set final="%dir%\%folder%"
set dst="%final%/1 - Estimating Orginal Quote Material"
if not exist %final% (
mkdir "%dst%"
copy /-Y "%dir%\_takeoff.xlsx" %est%
mkdir "%dst%\Downloads"
mkdir "%dst%\Plans"
mkdir "%dst%\Quotes"
mkdir "%dst%\Cut Sheets"
mkdir "%dst%\Venders"
mkdir "%final%\2 - Signed Quote - Contract\Non-Current Purchase Orders"
mkdir "%final%\3 - Special Purchase Trading Goods"
mkdir "%final%\4 - Engineering\2 - Submittals"
mkdir "%final%\4 - Engineering\3 - Approvals"
mkdir "%final%\4 - Engineering\4 - Drawings in Progress\Released Production Drawings"
mkdir "%final%\5 - Final Production Drawings"
mkdir "%final%\6 - Q.C. Document"
mkdir "%final%\7 - Project Management _ Schedule"
)
pause
問題是你在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
您也不需要回聲中的引號,除非您只是希望它回顯引號。
一個更簡單的想法:
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
arked行,你目前有超過什么最終用戶在每次提示進入,便可以進入什么什么的,(包括無效字符)管不着!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.