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

Показать сообщение отдельно

Ветеран


Contributor


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

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


Цитата:
<Артикул>A92/950</Артикул>
<Картинка>2a/2a08886a170211e8f097141877341409</Картинка>
sergey14235, Невозможно переименовать файл
"2a08886a170211e8f097141877341409.jpg" в "A92/950.jpg"
так как символ / в имени недопустим. Что делать?
Код: Выделить весь код
@Echo Off
cls
SetLocal
>nul chcp 1251 
	Set "InFile=Z:\Box_In\*.jpg"
	Set "ArtFile=Z:\Box_In\namefile.txt"
	Set "KeyArt=Артикул"

	FOR /F "usebackq tokens=1,2 delims=<> " %%i IN ("%ArtFile%") DO (
		If /I "%KeyArt%"=="%%i" (Set "Art=%%j" &Set /A N=0) Else (
			Call :FileArt "%%Art%%" %%j
		)
	)
	FOR %%f IN ("%InFile%") DO (
		FOR /F "usebackq tokens=2 delims==" %%e IN (`2^>nul Set %%~nf`) DO (
			Ren "%%f" "%%e%%~xf" ||Echo !!! Incorrect file name "%%e%%~xf" not renamed "%%f"
		)
	)
EndLocal
Pause
Exit /B

:FileArt
	Set "FName=%~2"
	:Begin1	
		If Not "%FName%"=="%FName:*/=%" (Set "FName=%FName:*/=%" &GoTo :Begin1)
	If %N%==0 Set "%FName%=%~1"
	If Not %N%==0 Set "%FName%=%~1_%N%"
	Set /A N+=1
Exit /B
Скрипт сохранить в 1251 кодировке, так как в Вашем файле с артикулами именно такая кодировка

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


Последний раз редактировалось megaloman, 24-04-2019 в 18:34.


Отправлено: 18:16, 24-04-2019 | #11