Właśnie zacząłem próbować nauczyć się pisać pliki wsadowe i myślę, że mam kilka lub większość podstaw, ale po prostu nie mogę tego rozgryźć.

Czy jest możliwe, aby plik wsadowy poprosił użytkownika o wprowadzenie nazwy podfolderu, a następnie zmianę bieżącego katalogu na ten podfolder?

Na przykład, powiedzmy, że mój bieżący katalog to C:\Folder. Ten folder zawiera podfoldery Sub 1, Sub 2 i Sub 3. Jeśli użytkownik musi przejść do jednego z tych folderów, który może się zmieniać przy każdym uruchomieniu pliku, czy można wprowadzić nazwę podfolderu, a następnie plik wsadowy ma zmienić bieżący katalog na ten folder?

Może coś takiego:

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%

Z góry dziękujemy za udzieloną pomoc!

0
Josh 3 marzec 2012, 01:35

2 odpowiedzi

Najlepsza odpowiedź

Prawie skończyłeś, brakuje tylko kilku szczegółów:

1- W przypadku użycia jakiejkolwiek formy polecenia SET NIE umieszczaj spacji przed znakiem równości; w przeciwnym razie nazwa zmiennej zawiera spację:

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

2- Jeśli nazwa folderu może zawierać spacje, musisz umieścić całą nazwę folderu w cudzysłowie:

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
Aacini 3 marzec 2012, 04:47

Możesz nawet spróbować:

@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

Następnie użyj jednego z następujących po wierszu powyżej w zależności od tego, co chcesz zrobić

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
2
rud3y 9 marzec 2012, 02:01