Войти

Показать полную графическую версию : [решено] Копия файлов в указанную папку на флешке


Страниц : 1 [2]

megaloman
15-12-2018, 18:06
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

alpap
15-12-2018, 20:46
Цитата A.N.D.R.E.I.S.M (из PM):
на флешки идет копия на вешние диски не хочет »

если поизвращаться (видимо для себя разве)
посмотреть первым или последним будет внешний диск в списке (так как не только он так определится)

>spisok.txt (for /f "delims=" %%a in ('"wmic logicaldisk get Name,Description,DriveType,MediaType /value"') do @echo:%%a)


если нужен первый такой из списка:

@echo off
set "In=C:\in"
set "Out=C:\out"
set "name="

for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where "DriveType=3 and MediaType=12" get Name /value^|find "="') do if not defined name set "name=%%a"
if exist "%name%\%Out%" echo Вот нужный путь: "%name%\%Out%"
pause


если нужен последний такой из списка:

@echo off
set "In=C:\in"
set "Out=C:\out"

for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where "DriveType=3 and MediaType=12" get Name /value^|find "="') do set "name=%%a"
if exist "%name%\%Out%" echo Вот нужный путь: "%name%\%Out%"
pause




© OSzone.net 2001-2012