|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] переместить файлы по папкам согласно расширению |
|
CMD/BAT - [решено] переместить файлы по папкам согласно расширению
|
Старожил Сообщения: 267 |
chcp 1251 @Echo OFF Set "Folder=%CD%" Set "DestDir=%CD%" FOR /R "%Folder%" %%# in ("*") DO ( set "ext=%%~x#" If not exist "%DestDir%\%%ext:~1%%" (call MKDIR "%DestDir%\%%ext:~1%%") call Echo [+] Moving: "%%ext:~1%%" call Move "%%#" "%DestDir%\%%ext:~1%%\" 1>NUL ) Pause Exit 1. проверка "If not exist" - т.е. в лог выводится постоянно ошибка, что папка существует 2. Pause перед выходом - не паузится чтобы посмотреть лог но в принципе свою задачу выполняет, только без удобств как починить п1 п2? |
|
Отправлено: 06:47, 27-02-2022 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
![]() @Echo Off cls >nul Chcp 1251 Set "BoxIn=%~dp0" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%" Set "BoxOut=%BoxIn%" rem Set "BoxOut=Z:\Box_Out" Attrib +R +H "%~dpnx0" FOR /F "usebackq delims=" %%f In (`2^>nul Where "%BoxIn%":"*.?*" ^|Find /I /V "%~dpnx0"`) DO ( If Exist "%%f" ( Set "Ext=%%~xf" 2>nul Call MD "%BoxOut%\%%Ext:~1%%" >nul Call Move "%%~dpf*%%~xf" "%BoxOut%\%%Ext:~1%%\" ) ) Attrib -R -H "%~dpnx0" Pause Exit /B |
|
------- Отправлено: 10:39, 27-02-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
А то приходилось после выполнения каждый раз в папку bat заглядывать и удалять сам скрипт |
|
Отправлено: 11:50, 27-02-2022 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
Цитата megaloman:
@Echo Off cls >nul Chcp 1251 If "%~1"=="" (Echo Bat File "%~dpnx0" mast run with argument: folder path. Press any key. &>nul Pause &Exit /B) Set "BoxIn=%~1" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%" Set "BoxOut=%BoxIn%" FOR /F "usebackq delims=" %%f In (`2^>nul Where "%BoxIn%":"*.?*"`) DO ( If Exist "%%f" ( Set "Ext=%%~xf" 2>nul Call MD "%BoxOut%\%%Ext:~1%%" >nul Call Move "%%~dpf*%%~xf" "%BoxOut%\%%Ext:~1%%\" ) ) Echo Press any key. &>nul Pause Exit /B |
||
------- Последний раз редактировалось megaloman, 27-02-2022 в 18:36. Отправлено: 17:55, 27-02-2022 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Копирование в папки с именем расширения
@echo off setlocal enabledelayedexpansion set "in=papka_in" set "out=papka_out" for /f "delims=" %%a in ('dir /a-d/b/s "%in%"') do (set "rf=%%~xa"& if not exist "%out%\!rf:~1!" md "%out%\!rf:~1!")& copy "%%~a" "%out%\!rf:~1!" exit @echo off set "in=papka_in" set "out=papka_out" set "rf=txt bat docx" for %%i in (%rf%) do for %%j in ("%in%\*.*") do if ".%%~i"=="%%~xj" copy "%%~j" "%out%" pause |
|
Отправлено: 20:15, 27-02-2022 | #5 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата alpap:
не работает с папкой C:\!! test - копия , из-за "!! ", без воскл знаков работает Цитата alpap:
set "in=%CD%" set "out=%CD%" поверх самого себя set "in=%CD%" set "out=%CD%\111" копирует каждый файл в файл "111" с его перезаписью Цитата alpap:
работает ------------------------------ Код из 1го сообщения в теме не подлежит починке? изначально был такой и делал папки с точкой, а в 1ом сообщении была попытка переделать на вариант без точки |
||||
Последний раз редактировалось shadowbat, 28-02-2022 в 13:35. Отправлено: 05:22, 28-02-2022 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
|
|
Отправлено: 21:53, 02-03-2022 | #7 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось shadowbat, 06-03-2022 в 09:03. Отправлено: 06:43, 03-03-2022 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Раскидать файлы по папкам согласно дате в имени файла | spkvvs | Скриптовые языки администрирования Windows | 17 | 24-01-2024 16:03 | |
CMD/BAT - [решено] переместить файлы по папкам согласно списку | shadowbat | Скриптовые языки администрирования Windows | 9 | 17-11-2023 14:51 | |
CMD/BAT - Как найти в архиве тестовые файлы по содержимому, а не по расширению? | yaoleg2 | Скриптовые языки администрирования Windows | 0 | 04-01-2013 15:18 | |
CMD/BAT - Разложить файлы из кучи по каталогам согласно образцу | Maartimus | Скриптовые языки администрирования Windows | 18 | 14-07-2012 13:37 | |
Запрет на файлы по расширению | adba | Microsoft Windows NT/2000/2003 | 5 | 06-08-2008 11:57 |
|