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

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

Ответить
Настройки темы
[решено] Скрипт для обрезки имени файлов

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


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

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


Всем добрый день, понадобился скрипт, не требующий прав администратора, который будет обрезать длину файла (например до 120 символов), и будет добавлять счетчик, чтобы не оказалось файлов-дублей.

Я нашел на просторах интернета такой скрипт:

Код: Выделить весь код
@echo off
set "d=D:\test"
set "lim=120"
for /f "delims=" %%a in ('2^>nul dir /a-d/b/s "%d%"') do call :l "%%a"
pause& exit
 
:l
 set "nf=%~n1"& set/a n+=1
 cmd/v/c "if not exist "!nf:~,%lim%!%n%%~x1" (ren "%~1" "!nf:~,%lim%!%n%%~x1") else (goto l)"
exit /b
Но у него есть минус: он как минимум не работает с файлами в имени которых есть "—".
Может ли кто помочь его исправить или сделать аналогичный?

P.S. До этого я делал через Total Commander, но сейчас нужно одно-кликовое решение, потому что оно нужно для эксплуатации самым простым пользователем.

Отправлено: 17:15, 14-05-2020

 

Ветеран


Contributor


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

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


michsh@vk, попробуйте, с Вашим символом работает
Код: Выделить весь код
@Echo Off
cls
	>nul chcp 1251
	Set "BoxIn=Z:\Box_IN"
	Set /A L=120
	
	Call :ReNum "%BoxIn%" %L%
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxIn%" /S /B /A:D`) DO Call :ReNum "%%d" %L%
pause
Exit /B

:ReNum
	Set /A M=0
	Pushd %1 || Exit /B

	>"%TMP%\%~nx0.txt" (FOR %%f IN (*.*) DO Echo %%f)
	FOR /F "usebackq delims=" %%f IN ("%TMP%\%~nx0.txt") DO Call Set /A M+=1 &Ren "%%f" "~~~%%~nxf"
	Set /A M=1%M%-%M%
	FOR %%f IN (~~~*.*) DO (
		Set /A M+=1
		Set "N=%%~nf"
		Call Ren "%%f" "%%N:~3,%2%%_%%M:~1%%%%~xf"
	)
	Popd
Exit /B 0

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 20:38, 15-05-2020 | #11



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

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


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


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

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


megaloman, огромное спасибо! Этот скрипт работает идеально!

Отправлено: 12:21, 16-05-2020 | #12



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Нужен скрипт для определения имени пользователя nasha Скриптовые языки администрирования Windows 7 25-02-2020 20:12
CMD/BAT - скрипт сравнение файлов и копирования по части имени mallonih Скриптовые языки администрирования Windows 7 23-01-2020 09:21
Любой язык - [решено] Скрипт который раскидывает файлы по папкам, с частью имени этих файлов username-qq Скриптовые языки администрирования Windows 6 06-10-2018 18:30
Лучшая программа для обрезки установочного Widows XP ? THEDOGG Хочу все знать 40 22-02-2013 17:02




 
Переход