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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос файлов с папки в папку при условии

Ответить
Настройки темы
CMD/BAT - Перенос файлов с папки в папку при условии

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день.

Просьба подсказать в написание срипта или батника.

Необходимо настроить перенос всех файлов .txt (наименования разные) с директории \EXCEPTIONS\Errors в папку \Inbound\SAFE, с условием что, в файлах .txt в которых есть значение *{2:I103* *{2:I202* *{2:I200* не переносить.

Отправлено: 15:11, 21-10-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6626
Благодарности: 1528

Профиль | Отправить PM | Цитировать


Powershell:
Код: Выделить весь код
dir "D:\temp\from\*.txt" |? {!(gc $_ |Select-String -SimpleMatch '*{2:I103* *{2:I202* *{2:I200*')} |mv -Destination "D:\temp\to"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:38, 21-10-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста, скопировались все файлы, т.е условия исключения не выполнилось.
(необходимо что бы .txt в которых есть одна из фраз *{2:I103* *{2:I202* *{2:I200* не переносились)

Отправлено: 15:54, 21-10-2022 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6626
Благодарности: 1528

Профиль | Отправить PM | Цитировать


Ну так написали бы нормально сразу, а то
Цитата Berezkinav:
в которых есть значение *{2:I103* *{2:I202* *{2:I200* не переносить »
Значение - это единственное число.

Решение для значений
*{2:I103*
*{2:I202*
*{2:I200*

Код: Выделить весь код
dir "D:\temp\from\*.txt" |? {(gc $_) -notmatch '\*\{2:I(103|202|200)\*'} |mv -Destination "D:\temp\to"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:01, 21-10-2022 | #4


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Результат последнего варианта скрипта, который Вы прислали (без переноса)
----- dir "D:\temp\from\*.txt" |? {(gc $_) -notmatch '\*\{2:I(103|202|200)\*'} |mv -Destination "D:\temp\to"

Directory: C:\text2\New1




Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/20/2022 11:37 AM 668 103.TXT
-a--- 10/20/2022 2:00 PM 278 202.TXT
-a--- 10/21/2022 11:17 AM 835 asfasfaf.txt
-a--- 10/21/2022 11:19 AM 258 dfgsf.txt
-a--- 10/20/2022 6:49 PM 282 sdfsfbxc.txt
-a--- 10/21/2022 12:40 AM 538 werwer.txt
-a--- 10/21/2022 1:37 AM 537 werwrew.txt
-a--- 10/21/2022 11:47 AM 616 xcvbxcbcvn.txt

Он вывод все варианты, хотя в файлы (103 202) не должны выводится, так как в них есть одно из значений *{2:I103*
*{2:I202*
*{2:I200*

Отправлено: 16:34, 21-10-2022 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6626
Благодарности: 1528

Профиль | Отправить PM | Цитировать


Пришлите примеры файлов.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:38, 21-10-2022 | #6


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


К сожалению сами файлы прислать не могу, примеры текста файлов:
WERTYY}{2:I103G22XXXXN}



JHGBNM}{2:I199GGH3XXXN}



CLDJDMV}{2:I202D33WFXXN}
и вообще может любые символы быть указаны.

Отправлено: 16:45, 21-10-2022 | #7


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Получилось справиться с перемещением, но необходимо добавить условия копирования в другую директорию (до переноса)

$RootDirectoryToCheck = 'C:\text2\New1'
$DestinationDirectory = 'C:\text2\New2'
$DestinationDirectory2 = 'C:\text2\New3'
$TextToFind = '{2:I(103|202|200)'
Get-ChildItem -Path $RootDirectoryToCheck -Filter '*.txt' -File -Recurse |
where {(Get-Content $_.FullName -TotalCount 1) -notmatch $TextToFind} |
Copy-Item -Destination $DestinationDirectory2 && Move-Item -Destination $DestinationDirectory

Можете пожалуйста проверить и подсказать, на данный момент по данному скрипту только копирует а перемещение не выполняет.

Отправлено: 17:36, 21-10-2022 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6626
Благодарности: 1528

Профиль | Отправить PM | Цитировать


Ну так ёлы-палы, где там звёздочки, зачем вы их давали в условии?

Код: Выделить весь код
$files = dir "c:\temp\from\*.txt" |? {!((gc $_) -match '\{2:I(103|202|200)')}
$files |cp -Destination "D:\temp\to2"
$files |mv -Destination "D:\temp\to"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 21-10-2022 в 19:21.


Отправлено: 18:54, 21-10-2022 | #9


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо за помощь, скрипт работает. (не успел отписать сразу)

Последний вопрос, подскажите пожалуйста как настроить логирование в .txt файл, что бы в нем записывалась дата создания файла и его наименование? (прописали логирование он записывает дату переноса файла)

Отправлено: 09:16, 24-10-2022 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос файлов с папки в папку при условии

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Перенос файлов из папки в папку по дате создания valedol_z@vk Скриптовые языки администрирования Windows 11 20-05-2020 09:44
Любой язык - [решено] копирование файлов при условии отсуствия файла в нужной папке batyaPS Скриптовые языки администрирования Windows 2 16-07-2017 08:54
VBS/WSH/JS - [решено] Перенос файлов с разной маской в одну папку Vertolet Скриптовые языки администрирования Windows 3 27-03-2012 09:36
CMD/BAT - Перенос файлов из однойпапки в структурную папку miketisch Скриптовые языки администрирования Windows 0 09-02-2012 10:06




 
Переход