2017-09-19 43 views
0

フォルダ名が単一のユーザー入力に基づいているディレクトリツリーを作成したいとします。上記の場合2017-テキスト文字列に基づいて一連のフォルダを作成する

ユーザ入力が入力それは\PATH\2017\01501-02000\2017-01654\\{A,B,C,D}

あろう 2017-01654た場合、それは \PATH\2018\01001-01500\2018-\\{A,B,C,D}

またはあろう2018-た場合は、\PATH\2017\01001-01500\2017-\\{A,B,C,D}

あろう

どのようにユーザー入力を変数に分割することができますか上記の経路を構築する?

これまでのところ、私はユーザーの入力を受けて、最終的なディレクトリセットを作成できますが、中間ツリーは作成できません。

SET /P 1="Enter Name:" 
echo %1% 

SET Path="\\PATH\%1%\" 
echo %Path% 

mkdir "%Path%A" "%Path%B" "%Path%C" "%Path%D" 
+0

@echo off setlocal set /P "input=Enter Name: " for /F "tokens=1,2 delims=-" %%a in ("%input%") do set /A year=%%a, high=1%%b/500*500+500, low=high-499 echo md \PATH\%year%\%low:~1%-%high:~1%\%input%\etc 

出力例:

以下のコードは、あなたの3つの入力例から所望の出力を生成します2017-\ A'また中間ディレクトリを作成する必要があります。それを試しましたか? – MatSnow

+0

そして、あなたのスクリプトで '%Path%'を使わないことをお勧めします。これはシステム変数です。 – MatSnow

+0

*%Path%をプレースホルダとして使用しただけで、実際のスクリプトを実行するときにわかりやすい名前を使用します。 私はあなたの言うようにツリーを作成することができましたが、フォルダの名前がわかるようにユーザー入力を分割する必要があります。うまくいけばわかりやすくなるだろう私のquに2番目の例を追加する – Moohan

答えて

0

に基づいて仕様を設定することは良い考えではありません。あなたは常にの仕様を記述する必要があります。あなたは、たとえば実行している場合は01001から01500 \ \ `2017 \ます。mkdir PATHを

Enter Name: 2017-
md \PATH\2017\01001-01500\2017-\etc 

Enter Name: 2018-
md \PATH\2018\01001-01500\2018-\etc 

Enter Name: 2018-01654 
md \PATH\2018\01501-02000\2018-01654\etc 
関連する問題