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

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

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

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


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

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


Вообще не могу сообразить.
надо:
в папке C:\ftp\rpo
во всех именах файлов удалить первые 7 символов.

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

Отправлено: 15:12, 01-04-2015

 

Ветеран


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

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


Код: Выделить весь код
@echo off

setlocal

set "folder=C:\ftp\rpo"
set "number=7"

pushd "%folder%"
for /f "delims=" %%i in ('2^>nul dir/a-d/b') do (
 set name=%%~ni
 2>nul cmd/v/c ren "%%i" "!name:~%number%!%%~xi"
)
popd

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

Отправлено: 16:53, 01-04-2015 | #2



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

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


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


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

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


Супер!!!!!!!!
Именно так, как хотелось!

Отправлено: 11:45, 02-04-2015 | #3


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


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

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


а если все это нужно сделать почти так же,
НО
удалить первые символы в имени файла ДО "разделителя"

пример

614000-ks3218955.zip -> ks3218955.zip

Отправлено: 14:38, 02-04-2015 | #4


Ветеран


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

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


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\ftp\rpo

2>nul pushd "%sSourceFolder%" && (
	for /f "usebackq delims=" %%i in (
		`2^>nul dir /b /a:-d`
	) do (
		set sVar=%%~i
		ren "%%~i" "!sVar:*-=!"
	)
	popd
) || (
	echo Can't find source folder [%sSourceFolder%]
	exit /b 1
)

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

Отправлено: 15:39, 02-04-2015 | #5


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


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

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


А в этом варианте скрипта разделитель "-" тоже удалится? Его бы тоже ненадо оставлять.

Отправлено: 17:31, 02-04-2015 | #6


Ветеран


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

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


ВиталийВ, а он остаётся?

Отправлено: 18:18, 02-04-2015 | #7


Пользователь


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

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


Iska, как всё-таки полезно общаться с мастерами ! Сколько раз использовал set с подстановкой, но как-то не зафиксировалось в голове, что можно в качестве str1 указать шаблон, начинающийся со звёздочки ! Очень полезный нюанс, при случае воспользуюсь.

-------
Разумный человек приспосабливается к миру, неразумный пытается приспособить мир к себе. Поэтому прогресс делают люди неразумные. (Дж. Б. Шоу)


Отправлено: 21:52, 02-04-2015 | #8


Ветеран


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

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


Цитата Гуллипут:
Сколько раз использовал set с подстановкой, но как-то не зафиксировалось в голове, что можно в качестве str1 указать шаблон, начинающийся со звёздочки ! »
Я почерпнул это у коллеги gora вот здесь.

Последний раз редактировалось Iska, 03-04-2015 в 01:44.


Отправлено: 01:39, 03-04-2015 | #9


Ветеран


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

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


еще с ftp такая проблема бывает, как русские имена файлов с пробелами. Девочки выкладывают документики в папку, которая "расшарена по ftp" для клиентов.
Ничего более умного не нашел, как написать утилиту, которая просматривает папку и ренеймит документы, с нехорошими именами.
Но может быть есть более красивое решение скриптом?

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 11:50, 03-04-2015 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - копирование выбранного файла в определенное место и добавление к имени файла даты x800 Скриптовые языки администрирования Windows 0 19-02-2014 20:39
Любой язык - [решено] Как открыть/удалить несколько файлов одного расширения без указания имени файла 9119 Скриптовые языки администрирования Windows 1 14-12-2012 15:42
CMD/BAT - [решено] Как из имени файла убрать 11 символов cdp75 Скриптовые языки администрирования Windows 3 26-04-2012 06:07
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
Длина имени входа пользователя более 20 символов L_Leorik Microsoft Windows NT/2000/2003 2 21-12-2009 13:49




 
Переход