![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос файлов и папок |
|
CMD/BAT - Перенос файлов и папок
|
Новый участник Сообщения: 3 |
Здравствуйте, помогите пожалуйста написать батник. Необходимо перенести все папки и файлы с рабочего стола (C:\Users\U001\Desktop\) за исключением ярлыков в определенную папку (D:\docs)
chcp 1251 MOVE /Y C:\Users\U001\Desktop\*.* "D:\docs\" такая команда перемещает ярлыки и не перемещает папки. |
|
Отправлено: 07:55, 29-05-2018 |
![]() Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Зачем вообще этот костыль? Если тебе нужно чтобы всё то барахло которые люди хранят на рабочем столе не занимало место на диске С - просто перемести рабочий стол на диск Д. Вот и всё.
|
Отправлено: 09:54, 29-05-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Если для одного конкретного пользователя, то:
@Echo Off
cls
Set "Users=C:\Users"
Set "Name=U001"
Set "Desk=Desktop"
Set "Out=D:\Docs"
Set "Exc=.lnk"
If Exist "%Users%\%Name%\%Desk%" Call :Dtop "%Name%" "%Users%\%Name%\%Desk%" "%Out%" "%Exc%"
Pause
GoTo :Eof
:Dtop
Echo %1 %2
Md "%~3_%~1" 2>nul
>%~d3\~Exclude.tmp Echo %~4
FOR /F "usebackq tokens=1,2 delims=>" %%i IN (`"xcopy "%~2\*.*" "%~3_%~1\" /Exclude:%~d3\~Exclude.tmp/E /H /R /F /Y"`) DO (
If Not "%%j"=="" (Set In=%%i &Set Ouf=%%j &Call :InDel "%%In:~0,-3%%" "%%Ouf:~1,-1%%")
)
For /F "usebackq delims=" %%i In (`Dir "%~2\" /B /S /A:D 2^>nul^|Sort /R`) Do 2>nul RD "%%i"
Del %~d3\~Exclude.tmp
Rd "%~3_%~1" 2>nul
GoTo :Eof
:InDel
If Exist %2 Del /A:-L %1
GoTo :Eof
Если для всех пользователей прописанных в, например, C:\Users, то:
+ выделенный кусок кода из предыдущего скрипта
|
------- Последний раз редактировалось megaloman, 29-05-2018 в 13:47. Отправлено: 13:38, 29-05-2018 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата Charg:
Необходимо: каждый день при включении компьютера, сносить все файлы и папки на диск D. Главная задача — чистый рабочий стол (с нужными ярлыками), экономия места на С — задача второстепенная. |
|
Последний раз редактировалось iiama, 30-05-2018 в 02:27. Отправлено: 01:47, 30-05-2018 | #4 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата iiama:
@echo off set "dst=d:\docs\%username%\desktop" :loop if exist "%dst%\" (set "dst=%dst%_"&goto loop) if not exist "%dst%\" md "%dst%" for /f "tokens=3*" %%i in ('reg query "hkcu\software\microsoft\windows\currentversion\explorer\user shell folders" /v desktop^|find "desktop"') do set "desktop=%%i" robocopy "%desktop%" "%dst%" /xf "*.lnk" "*.ini" /s /e /tee /move pause&exit /b |
||
------- Отправлено: 06:10, 30-05-2018 | #5 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 09:27, 30-05-2018 | #6 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
powershell: $src = [environment]::getfolderpath("desktop") if (!(test-path ($dst = "d:\docs\$env:username"))){md $dst} mi "$src\*" $dst -exc '*.lnk' -whatif Перемещение с сохранением структуры и с учетом наличия исключаемых файлов в дочерних каталогах: function move-rec ($a,$b){ begin{$splt = $a.split('\')[-1]} process{ if($_.psiscontainer){ if(!(test-path ($fdst = $b+($_.fullname -split $splt)[1]))){ md $fdst|out-null } } else { $fdst = $b+($_.directoryname -split $splt)[1] mi $_.fullname $fdst } } } # Исходный и целевой каталоги $src_m = [environment]::getfolderpath("desktop") $dst_m = "d:\docs\$env:username" # Исключаемые файлы $ex = '*.lnk' # перемещаем файлы с сохранением структуры dir $src_m -rec -exc $ex|move-rec $src_m $dst_m # удаляем пустые каталоги dir $src_m -rec -dir|sort{$_.fullname.length} -des|%{ if((dir $_.fullname -rec) -eq $null){del $_.fullname} } |
|
Последний раз редактировалось YuS_2, 30-05-2018 в 18:16. Отправлено: 12:59, 30-05-2018 | #7 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Всем огромное спасибо, задача решена.
|
Отправлено: 02:33, 31-05-2018 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Скрипт для забора файлов и папок (с сохр. структуры) из неск. сетевых папок в одну л. | DjBoBo | Скриптовые языки администрирования Windows | 0 | 19-07-2016 16:30 | |
MSFT SQL Server - перенос папок (файлов) с помощью SQL | Russo | Программирование и базы данных | 0 | 06-11-2015 00:38 | |
CMD/BAT - Перенос файлов и создание папок | speedo | Скриптовые языки администрирования Windows | 11 | 01-09-2015 13:38 | |
Интерфейс - [решено] Пропали эскизы папок (не файлов а, именно папок) | demidovvas | Microsoft Windows 7 | 5 | 08-03-2014 18:27 | |
CMD/BAT - Перенос всех файлов из включенных папок | 4zz | Скриптовые языки администрирования Windows | 2 | 26-08-2012 21:33 |
|