Показать полную графическую версию : [решено] Копия файлов в указанную папку на флешке
A.N.D.R.E.I.S.M
18-11-2018, 17:42
Здравтсвуйте форумчане))
Помогите пожалуйста своими дарами. У меня есть вот такой скриптик:
@echo off
for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 2^>NUL`) do (
if %%l equ 2 (
xcopy /s "%userprofile%\Downloads\copy.txt" %%i\
)
)
Всё копирует отлично в корень флешки, а в указанную папку не выходит ни как, точнее в этом коде не указано копия в указанную папку на флешке.
Помогите пожалуйста до делать этот код, чтоб копировала в указаную папку на ФЛЕШКЕ.
а в указанную папку не выходит ни как, »
А как Вы указывали «указанную папку»?
A.N.D.R.E.I.S.M
18-11-2018, 18:07
Iska, Приветсвую вас))
Автоматически копирует из указанной папки по пути"%userprofile%\Downloads\copy.txt" на флешку. А вот чтоб скопировать на флешку в указанную папку, не могу ни как((
A.N.D.R.E.I.S.M, ещё раз — Вы пишете:
а в указанную папку не выходит ни как »
Так я спрашиваю — как именно Вы пытались сделать?
A.N.D.R.E.I.S.M
18-11-2018, 19:36
Iska, Вот так пробовал - if %%l equ 2 ( \Folder
megaloman
19-11-2018, 10:18
@Echo Off
cls
Set "FileOut=Z:\Box_In\Мой контент\Книги\djvu\Windows Servrt 2012 полное руководство.djvu"
Set "OutDir=Папка на флешке"
FOR /F "usebackq tokens=1,2 delims= " %%i IN (`"wmic logicaldisk get caption,drivetype"`) DO (
If "%%j"=="2" Xcopy "%FileOut%" "%%i\%OutDir%\" >nul
)
pause
A.N.D.R.E.I.S.M
19-11-2018, 11:04
megaloman, День Добрый, РАБОТАЕТ))
Спасибо большущие вам, что помогли мне разобратся. То-что нужно мне)
Ну, пусть будет до кучи и WSH:
Option Explicit
Dim strSourceFileName
Dim strSourceFile
Dim strDestPath
Dim objFolder
Dim objDrive
Dim strDestFolder
strSourceFileName = "copy.txt"
strDestPath = "Sample folder"
Set objFolder = WScript.CreateObject("Shell.Application").NameSpace("shell:Downloads")
If objFolder Is Nothing Then
WScript.Echo "Can't determine source folder."
WScript.Quit 1
End If
With WScript.CreateObject("Scripting.FileSystemObject")
strSourceFile = .BuildPath(objFolder.self.Path, strSourceFileName)
If .FileExists(strSourceFile) Then
For Each objDrive In .Drives
If objDrive.DriveType = 1 And objDrive.IsReady Then
strDestFolder = .BuildPath(objDrive.RootFolder.Path, strDestPath)
If .FolderExists(strDestFolder) Then
.CopyFile strSourceFile, strDestFolder & "\", True
Exit For
End If
End If
Next
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
Set objFolder = Nothing
End With
WScript.Quit 0
а чего в wmic сразу не указать тип диска?
@echo off
set "in=C:\In"
set "out=Out"
for /f %%a in ('"wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do >nul xcopy "%in%" "%%a\%out%"
pause
A.N.D.R.E.I.S.M
21-11-2018, 08:29
Доброе утро.
megaloman, Здравствуйте, а можно еще добавить команду, создать папку на флешке?
Нашел одну проблему, все что в папке копирует с диска C:\Folder\Word.txt, а вот подкаталоги C:\Folder не хочет чего-то копировать((
@Echo Off
cls
Set "FileOut=Z:\Box_In\Мой контент\Книги\djvu\Windows Servrt 2012 полное руководство.djvu"
Set "OutDir=Папка на флешке"
FOR /F "usebackq tokens=1,2 delims= " %%i IN (`"wmic logicaldisk get caption,drivetype"`) DO (
If "%%j"=="2" Xcopy "%FileOut%" "%%i\%OutDir%\" >nul
)
pause
Iska, Спасибо большущие вам в помощи)
alpap, Здравствуйте, вот такой тип указать? 'USB%'"
вот такой тип указать? »
я уже указал его в коде, код полностью соответствует задаче
drivetype="2" »
A.N.D.R.E.I.S.M,
если надо папку копировать, добавьте ключ /i:
>nul xcopy /i "%in%" "%%a\%out%"
A.N.D.R.E.I.S.M
21-11-2018, 14:51
megaloman, Перепутал чуть-чуть, извините, всю папку с файлами и подкаталогами. Но прежде чем скапировать нужно создать папку на самой флешке
alpap, Спасибо буду пробовать
A.N.D.R.E.I.S.M
21-11-2018, 15:13
megaloman, Это как пример написал, что в папке есть файлы с разришением .txt, мне нужно скопировать папку с диска C:\Folder- с подпапками / Создать на флешке папку, и скопировать всё в папку и ВСЁ))
1. C:\Folder\Word.txt - это файл или папка?
alpap, Что, я не так делаю: @echo off
set "in=C:\Users\Zexs\Book" - Копия с диска
set "out=book " - копия на флешку
for /f %%a in ('"wmic path Win32_LogicalDisk where (drivetype="2" and mediatype=null) get name|find ":""') do >nul xcopy /i "%in%" "%%a\%out%"
megaloman
21-11-2018, 15:54
всю папку с файлами и подкаталогами »@Echo Off
cls
Set "DirIn=Z:\Box_In\Мой контент"
Set "DirOut=Мой контент"
FOR /F "usebackq tokens=1,2 delims==:" %%i IN (`"wmic logicaldisk where drivetype="2" get caption /VALUE"`) DO (
If Not "%%j"=="" Xcopy /S "%DirIn%\*.*" "%%j:\%DirOut%\"
)
Pause
GoTo :Eof
Что, я не так делаю: »
все так, только убрать из переменных комментарий: - Копия с диска и - копия на флешку
и папка: "C:\Users\Zexs\Book" должна быть не пуста.
еще есть опечатка, лишний пробел после имени папки в значении переменной out:
set "out=book "
надо:
set "out=book"
иначе не найдет путь
A.N.D.R.E.I.S.M
21-11-2018, 22:49
megaloman, alpap, Спасибо большущие при большущие вам ГОСПОДА, вы просто СУПЕР)) Выручили меня, всё работает отлично вот по этому скрипту: @Echo Off
cls
Set "DirIn=Z:\Box_In\Мой контент"
Set "DirOut=Мой контент"
FOR /F "usebackq tokens=1,2 delims==:" %%i IN (`"wmic logicaldisk where drivetype="2" get caption /VALUE"`) DO (
If Not "%%j"=="" Xcopy /S "%DirIn%\*.*" "%%j:\%DirOut%\"
)
Pause
GoTo :Eof
Другие коды себе в библиотеку придержу, очень полезная и годная тема.
megaloman
23-11-2018, 11:41
A.N.D.R.E.I.S.M, @Echo Off
cls
Set "DirIn=Z:\Box_In\Мой контент"
Set "DirOut=Тра ля ля"
FOR /F "usebackq tokens=1,2 delims==:" %%i IN (`"wmic logicaldisk where drivetype="2" get caption /VALUE"`) DO (
If Not "%%j"=="" (
If Exist "%%j:\%DirOut%\" Rd /S /Q "%%j:\%DirOut%"
Xcopy /S "%DirIn%\*.*" "%%j:\%DirOut%\"
)
)
Pause
GoTo :Eof
megaloman
15-12-2018, 16:08
A.N.D.R.E.I.S.M, Не копирует и хоть убей, на флешки идет копия на вешние диски не хочет. Что можно в коде подправить чтоб, как на флешки копировались файлы, так и на внешние диски?@Echo Off
cls
Set "DirIn=Z:\Box_In\Не Мой контент"
Set "DirOut=Тра ля ля"
FOR /F "usebackq tokens=1,2 delims==:" %%i IN (`"wmic logicaldisk where 'drivetype="2" or drivetype="3"' get caption /VALUE"`) DO (
If Not "%%j"=="" Set "Letter=%%j"
)
If Exist "%Letter%:\%DirOut%\" Rd /S /Q "%Letter%:\%DirOut%"
Xcopy /S "%DirIn%\*.*" "%Letter%:\%DirOut%\"
PauseВся сложность в том, что нет признака, отличающего внутренний и внешний жесткие диски
Если целевая папка имеется, она будет удалена перед копированием. (либо убейте красную строку, чтобы этого не делалось)
Вся сложность в том, что нет признака, отличающего внутренний и внешний жесткие диски »
Свойство MediaType класса Win32_DiskDrive:
Caption MediaType
ST500DM0 02-1SB10A SCSI Disk Device Fixed hard disk media
Kingston DataTraveler 3.0 USB Device Removable Media
WD My Passport 0832 USB Device External hard disk media
Другое дело, что задачка эта явно не для пакетных файлов — надо цепь ассоциаций выстраивать от Win32_DiskDrive через Win32_DiskPartition к Win32_LogicalDisk.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.