Скрипт на перемещение каталогов и файлов с исключениями
Цитата: Илья от 22.03.2025, 06:47Доброго времени суток! Помогите автоматизировать процесс перемещения копирования с основной машины на виртуальную.
На основном хосте есть общая папка виртуальной машины (Z:) на ней находится папка User1 (пустая), которую перемещать не надо, а все остальные каталоги (в том числе пустые) и файлы (.exe .txt .rar и т. п.) перемещались по таймеру в 1 минуту (или без таймера, можно же через планировщик добавить).Пробовал через Xcopy и RD, но не могу добавить в исключения папку User1 при удалении.
Доброго времени суток! Помогите автоматизировать процесс перемещения копирования с основной машины на виртуальную.
На основном хосте есть общая папка виртуальной машины (Z:) на ней находится папка User1 (пустая), которую перемещать не надо, а все остальные каталоги (в том числе пустые) и файлы (.exe .txt .rar и т. п.) перемещались по таймеру в 1 минуту (или без таймера, можно же через планировщик добавить).
Пробовал через Xcopy и RD, но не могу добавить в исключения папку User1 при удалении.
Цитата: Илья от 22.03.2025, 08:56Mikhail, я его через .bat делал.[spoiler title=".bat"]
XCOPY C:\Users\Имя пользователя\Desktop\Test1 E:\Test2 /s /y
\User1\
CD C:\Users\Имя пользователя\Desktop\Test1
RD /s /q C:\Users\Имя пользователя\Desktop\Test1[/spoiler]
Mikhail, я его через .bat делал.
XCOPY C:\Users\Имя пользователя\Desktop\Test1 E:\Test2 /s /y
\User1\
CD C:\Users\Имя пользователя\Desktop\Test1
RD /s /q C:\Users\Имя пользователя\Desktop\Test1
Цитата: Mikhail от 22.03.2025, 09:17Илья, попробуй: заменить пути, source - откуда, destination - куда.
@echo off set "source=C:\Users\PC\Desktop\test1" set "destination=C:\Users\PC\Desktop\test2" robocopy "%source%" "%destination%" /E /XD "User1" /R:1 /W:1 RD /s /q "%source%"Только я не понял, папку удалять с которой копировалось вместе с User1 или нет?, потому как твой код удаляет папку.
Илья, попробуй: заменить пути, source - откуда, destination - куда.
@echo off set "source=C:\Users\PC\Desktop\test1" set "destination=C:\Users\PC\Desktop\test2" robocopy "%source%" "%destination%" /E /XD "User1" /R:1 /W:1 RD /s /q "%source%"
Только я не понял, папку удалять с которой копировалось вместе с User1 или нет?, потому как твой код удаляет папку.
Цитата: Илья от 22.03.2025, 13:53Mikhail, Спасибо! Но можете сделать так, чтобы содержимое каталога test1 копировалось, папка test1 нужна, и в ней исключение User1, то есть она без файлов внутри и каталогов, пустая изначально, и чтобы она оставалась не тронутой в каталоге test1? А все остальные каталоги (в том числе пустые), и файлы без исключения копировались/переносились в папку test2, при этом саму папку test1 оставлять не тронутой...
Mikhail, Спасибо! Но можете сделать так, чтобы содержимое каталога test1 копировалось, папка test1 нужна, и в ней исключение User1, то есть она без файлов внутри и каталогов, пустая изначально, и чтобы она оставалась не тронутой в каталоге test1? А все остальные каталоги (в том числе пустые), и файлы без исключения копировались/переносились в папку test2, при этом саму папку test1 оставлять не тронутой...
Цитата: Mikhail от 22.03.2025, 14:10Илья, Держи.
@echo off robocopy "C:\Users\PC\Desktop\test1" "C:\Users\PC\Desktop\test2" /E /XD "User1"
Илья, Держи.
@echo off robocopy "C:\Users\PC\Desktop\test1" "C:\Users\PC\Desktop\test2" /E /XD "User1"
Цитата: Илья от 22.03.2025, 14:26Mikhail, Спасибо большое! Но еще один вопрос😅, надо чтобы он в папке test1 удалял файлы и каталоги (в том числе пустые) после копирования, кроме User1.
Mikhail, Спасибо большое! Но еще один вопрос😅, надо чтобы он в папке test1 удалял файлы и каталоги (в том числе пустые) после копирования, кроме User1.
Цитата: Mikhail от 22.03.2025, 14:31Илья, Дубль)
@echo off set "source_dir=C:\Users\PC\Desktop\test1" set "dest_dir=C:\Users\PC\Desktop\test2" robocopy "%source_dir%" "%dest_dir%" /E /XD "User1" pushd "%source_dir%" for /d %%D in (*) do ( if /i not "%%D" == "User1" ( rd /s /q "%%D" ) ) del /q *.* popd
Илья, Дубль)
@echo off
set "source_dir=C:\Users\PC\Desktop\test1"
set "dest_dir=C:\Users\PC\Desktop\test2"
robocopy "%source_dir%" "%dest_dir%" /E /XD "User1"
pushd "%source_dir%"
for /d %%D in (*) do (
if /i not "%%D" == "User1" (
rd /s /q "%%D"
)
)
del /q *.*
popd
Цитата: Илья от 24.03.2025, 09:57Mikhail, приветствую! Он удаляет и test1 и test2, попробовал на раб столе, всё переместил и исчезли файлы и папки...
Mikhail, приветствую! Он удаляет и test1 и test2, попробовал на раб столе, всё переместил и исчезли файлы и папки...
Цитата: Mikhail от 24.03.2025, 10:02Ничего не удаляет, как ты написал в предыдущей сообщении, так он и делает. Записал gif, то есть после копирование из 1 в 2, он удаляет файлы в 1 кроме user1 и оставляет папку.
Так как ты и написал:
надо чтобы он в папке test1 удалял файлы и каталоги (в том числе пустые) после копирования, кроме User1.
Ничего не удаляет, как ты написал в предыдущей сообщении, так он и делает. Записал gif, то есть после копирование из 1 в 2, он удаляет файлы в 1 кроме user1 и оставляет папку.
Так как ты и написал:
надо чтобы он в папке test1 удалял файлы и каталоги (в том числе пустые) после копирования, кроме User1.
Цитата: Илья от 24.03.2025, 10:10Mikhail, простите пожалуйста...Это я дурак! Путь не так вписал, всё работает как надо, спасибо огромное!🤝
Mikhail, простите пожалуйста...Это я дурак! Путь не так вписал, всё работает как надо, спасибо огромное!🤝