2012-03-02 14 views
0

バッチファイルの書き方を学び始めたばかりですが、基本的にはほとんどまたは基本的なものがあると思いますが、これを理解できないようです。対話形式のバッチファイルの問題

バッチファイルにサブフォルダ名を入力して現在のディレクトリをそのサブフォルダに変更するように要求することはできますか?

たとえば、現在のディレクトリがC:\ Folderであるとします。このフォルダには、サブフォルダSub 1、Sub 2、およびSub 3があります。ユーザーがこれらのフォルダの1つを参照する必要があるが、ファイルが実行されるたびに変更される可能性がある場合は、サブフォルダ名を入力し、バッチファイルで現在のディレクトリをそのフォルダに変更しますか?

たぶんのようなもの:

CD C:\Folder 

SET /p desiredFolder = Enter the name of the sub-folder you would like to go to: 
Sub 1, Sub 2, or Sub 3 

---User enters Sub 1 and hits enter--- 

CD C:\Folder\%desiredFolder% 

が提供される任意の助けを事前にありがとうございます!

答えて

2

あなたは、ほぼだけのカップルの詳細が不足している、行っている:

1-使用SETコマンドのいずれかの形式は、等号の前にスペースが含まれていない場合には、フォルダ名にスペースが含まれていてもよい場合は、引用符で全体フォルダ名を囲む必要があり

SET VAR = VALUE 
ECHO %VAR%    show nothing 
ECHO %VAR %    show " VALUE" 

2 - :それ以外の場合は、変数名スペースが含ま

CD C:\Folder 

SET /p desiredFolder=Enter the name of the sub-folder you would like to go to: 
Sub 1, Sub 2, or Sub 3 

---User enters Sub 1 and hits enter--- 

CD "C:\Folder\%desiredFolder%" 
+0

それは働いた!どうもありがとうございました! – Josh

+0

実際、 'CD'ではパスを二重引用符で囲む必要はありませんが、そうする習慣に入ることは害ではありません。 –

2

あなたも試してみてください:

@echo off 
:start 
set desiredFolder= 
dir /AD /W /B 
echo.--------------------------------------------------------- 
set /p desiredFolder=Enter the name of the folder you would like to go to: 
echo %CD%\%desiredFolder% 
IF NOT EXIST %CD%\%desiredFolder% echo..\%desiredFolder% does not exist, try again. 
IF NOT EXIST %CD%\%desiredFolder% echo.--------------------------------------------------------- & goto start 

次に、上記の行の後に次のいずれかを使用します。したい

start cmd.exe /K chdir %CD%\%desiredFolder% 
REM if you want to start your command window in a new directory 

cmd.exe /K chdir %CD%\%desiredFolder% 
REM if you want to change directories in your current command window 

start %CD%\%desiredFolder% 
REM if you want to open the folder in windows explorer