Ветеран
Сообщения: 2710
Благодарности: 1686
|
Профиль
|
Отправить PM
| Цитировать
A.N.D.R.E.I.S.M,
Как вариант, при отсутствии флэшки будет выдано меню на выбор диска
Код:
@Echo Off
cls
Set "DirIn=Z:\Box_In\Не Мой контент"
Set "DirOut=Тра ля ля"
Set "DriveName="
FOR /F "usebackq tokens=1,2 delims==:" %%i IN (`"2^>nul wmic logicaldisk where drivetype="2" get caption /VALUE"`) DO (
If Not "%%j"=="" Set "DriveName=%%j"
)
If Not "%DriveName%"=="" GoTo :MyCopy
Set /A N=0
Set "Spisok=0"
Set "Element=0(нуль)=Выход"
Call :Description
Echo ===== Выберите диск для копирования
FOR /F "usebackq Skip=1 tokens=1,2,3 delims=: " %%i IN (`"wmic logicaldisk where 'drivetype="2" or drivetype="3"' get caption,drivetype,name"`) DO (
If Not "%%j"=="" Call :Menu "%%i" "%%i: %%A%%j%%"
)
If N==0 Exit /B 1
CHOICE /C %Spisok% /M "%Element%"
If %ErrorLevel% EQU 1 Exit B 0
Set /A DriveName=%ErrorLevel%-1
Call Set "DriveName=%%Disk%DriveName%%%"
:MyCopy
If Exist "%DriveName%:\%DirOut%\" Rd /S /Q "%DriveName%:\%DirOut%"
Xcopy /S /y "%DirIn%\*.*" "%DriveName%:\%DirOut%\"
Pause
GoTo :Eof
:Description
Set "A0=0 - Unknown"
Set "A1=1 - No Root Directory" %
Set "A2=2 - сменный диск"
Set "A3=3 - жесткий диск"
Set "A4=4 - сетевой диск"
Set "A5=5 - CD-ROM"
Set "A6=6 - RAM диск"
GoTo :Eof
:Menu
Echo %~2
Set /A N+=1
Set "Disk%N%=%~1"
Set "Spisok=%Spisok%%~1"
GoTo :Eof
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Последний раз редактировалось megaloman, 15-12-2018 в 18:11.
Отправлено: 18:06, 15-12-2018
| #21
|