Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 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