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

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

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

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


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

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


Добрый день!!!
Необходимо реализовать переименование всех файлов с расширением jpg в файлы с расширением jpeg, находящихся в папке, указанной пользователем. Вывести на экран список переименованных файлов и их общее количество.

Отправлено: 16:39, 08-01-2014

 

Ветеран


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

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


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

pushd %1 || goto:eof

for /f "tokens=*" %%i in ('dir /b *.jpg') do (

	set /a n+=1
	ren "%%i" "%%~ni.jpeg"
	echo %%~ni

)

echo ---
echo %n%

popd
Путь к папке задается параметром к батнику.

Отправлено: 18:19, 08-01-2014 | #2



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

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


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


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

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


А где параметр указать?

Отправлено: 19:06, 08-01-2014 | #3


Ветеран


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

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


Цитата Slava91:
А где параметр указать? »
O.o Ладно, укажи в самом батнике:
Код: Выделить весь код
@echo off
setlocal

set "folder=D:\Pictures\The Last Friday"
pushd "%folder%" || goto:eof

....

Отправлено: 20:10, 08-01-2014 | #4


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


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

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


переименовывает и это хорошо. Но не выводит список и количество переименованных файлов. И как реализовать выбор папки через параметр если не сложно поясните для развития.

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

Отправлено: 23:47, 08-01-2014 | #5


Ветеран


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

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


Цитата Slava91:
И как реализовать выбор папки через параметр если не сложно поясните для развития. »
Например, так: CMD/BAT: использование стандартных GUI-диалогов выбора папки и файла.

Цитата Slava91:
в смысле список то он выводит но закрывает сразу после выполнения нужно сделать так что бы он попросил действия пользователя перед закрытием »
Добавьте «pause» в пакетный файл, если Вы вызываете его непосредственно из-под Проводника.

Отправлено: 06:05, 09-01-2014 | #6


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


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

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


добавил pause алгоритм работает единственное никак не пойму как мне добавить данный код в батник чтобы все заработало?
@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
echo Выбрана папка: [%sFolderName%].
) else (
echo Папка не была выбрана.
)

endlocal
exit /b 0

Отправлено: 15:56, 12-01-2014 | #7


Ветеран


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

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


Не проверялось:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "tokens=2 delims=:" %%i in ('chcp') do (
	set sPrevCP=%%i
	chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
	`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
	1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
	pushd "%sFolderName%" || goto:eof
	
	for /f "tokens=*" %%i in ('dir /b *.jpg') do (
	
		set /a n+=1
		ren "%%i" "%%~ni.jpeg"
		echo %%~ni
	)
	
	echo ---
	echo %n%
	
	popd
) else (
	echo Папка не была выбрана.
)

endlocal
exit /b 0

Отправлено: 16:08, 12-01-2014 | #8


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


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

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


где указывается параметр?
куда необходимо мне вставить этот код?

скажем так этим я никогда не занимался, но тут встала задача. Поэтому понимание у меня начальный уровень.

Отправлено: 16:23, 12-01-2014 | #9


Ветеран


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

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


Цитата Slava91:
где указывается параметр? »
Там нет никакого параметра, поскольку:
читать дальше »
Цитата Slava91:
как реализовать выбор папки »
Цитата Iska:
Например, так: CMD/BAT: использование стандартных GUI-диалогов выбора папки и файла. »
Цитата Slava91:
как мне добавить данный код в батник чтобы все заработало? »
Цитата Iska:
Не проверялось: »


Цитата Slava91:
куда необходимо мне вставить этот код? »
Скопировать приведённый код. Создать файл с расширением «.cmd». Вставить скопированное в этот файл. Сохранить файл в кодировке OEM/866. Пользоваться.

Отправлено: 17:00, 12-01-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Переименование файлов. Archangel_Cool Хочу все знать 1 23-09-2011 13:43
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
Разное - [решено] Переименование файлов mitrik Microsoft Windows 2000/XP 3 22-08-2008 04:53
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход