dreamscafe |
29-06-2018 16:22 2820028 |
Переименовать папки, удалив всё после определённого символа
Здравствуйте. Есть следующая задачка:
В одной папке лежит куча файлов с именами по типу "12345_44_22.txt"
Эти файлы я раскидываю по папкам батником
Цитата:
For %%a in (*.txt) do md "%%~na"& move "%%~a" "%%~na"
|
Теперь мне необходимо созданные папки, которые имеют вид по типу "12345_44_22", привести к виду просто "12345".
Т.е. удалить всё, что после первого символа "_".
Подскажите что дописать в батнике?
|
Цитата:
Цитата dreamscafe
Теперь мне необходимо созданные папки, которые имеют вид по типу "12345_44_22", привести к виду просто "12345". »
|
Сначала бездумно залезли в дебри, а теперь не знаем дороги. :)
Если Вам надо, чтобы все файлы вида 12345_??_??.txt попали в папку вида 12345 (как я понимаю, батник у Вас среди этих файлов/папок), то вот решение
Код:
@Echo Off
Set "Mask=?????_??_??.txt"
Set "Delim=_"
FOR /F "usebackq tokens=1* delims=%Delim%" %%a IN (`2^>nul Dir /B /A:-D "%Mask%"`) DO (
If Not Exist "%%a\" Md "%%a"
Move /Y "%%a%Delim%%%b" "%%a\" >nul
)
GoTo :Eof
Еще вариант, побыстрее
Код:
@Echo Off
Set "Mask=?????_??_??.txt"
Set "Delim=_"
FOR /F "usebackq tokens=1* delims=%Delim%" %%a IN (`2^>nul Dir /B /A:-D "%Mask%"`) DO (
If Not Exist "%%a\" Md "%%a"
If Exist "%%a%Delim%%%b" Move /Y "%%a%Delim%*%%~xb" "%%a\" >nul
)
GoTo :Eof
|
Время: 23:08.
© OSzone.net 2001-