Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Цитата Iska:
Выкладывайте образец такого файла, упакованного в архив »
Если файл того вида, что как я понимаю
Код: Выделить весь код
fbr\fbr_linoleum     = floor\floor_floor1  
crete\crete_bordur   = crete\crete_border2  
crete\crete_stolb_a  = crete\crete_stolb   
crete\crete_dirty_gr = crete\crete_floor3
то вот вариант
Код: Выделить весь код
@Echo Off
cls

Set "BoxIn=Z:\Box_In" 
Set "BoxOut=Z:\Box_Out" 
Set "Spisok=Z:\Box_In\список переименования.txt" 

FOR /F "usebackq tokens=1,2 delims==" %%i IN ("%Spisok%") DO If Not "%%j"=="" Call :ReMove "%%i"   "%%j"
pause
GoTo :Eof

:ReMove
	Call :Space "File1" %1
	Call :Space "File2" %2
	Set Action=Move "%BoxIn%\%File1%" "%BoxOut%\%File2%"
	Call :MakeDir "%BoxOut%\%File2%"
	If Not Exist "%BoxOut%\%File2%" (
		%Action% >nul || (Echo %Action% &Echo:)
	) Else (
		Echo %Action% & Echo File Exist "%BoxOut%\%File2%"  &Echo:
	)
GoTo :Eof

:Space
	Set "TMPbegin=%~2"
	:Begin
	Set "TMPname=%TMPbegin%"
	If "%TMPbegin:~0,1%"==" " Set "TMPbegin=%TMPbegin:~1,999%"
	If "%TMPbegin:~-1%"==" " Set "TMPbegin=%TMPbegin:~0,-1%"
	If Not "%TMPbegin%"=="%TMPname%" GoTo :Begin
	Set "%~1=%TMPname%"
GoTo :Eof

:MakeDir
	If Not Exist "%~dp1" Md "%~dp1" 
GoTo :Eof
Если файл того вида, что в вопросе, например
Код: Выделить весь код
 Z:\Box_In          |    Z:\Box_Out\  
  старое имя:          новое имя:
fbr\fbr_linoleum     = floor\floor_floor1  
crete\crete_bordur   = crete\crete_border2  
crete\crete_stolb_a  = crete\crete_stolb   
crete\crete_dirty_gr = crete\crete_floor3    
и т.п.
то вот вариант
Код: Выделить весь код
@Echo Off
cls

Set "Spisok=Z:\Box_In\список переименования.txt" 

FOR /F "usebackq tokens=1,2 delims=|" %%i IN ("%Spisok%") DO If Not "%%j"=="" (
	Call :Space "BoxIn" "%%i"
	Call :Space "BoxOut" "%%j"
	GoTo :Continue
)
Echo OutBox not defined
Pause
GoTo :Eof

:Continue

FOR /F "usebackq tokens=1,2 delims==" %%i IN ("%Spisok%") DO If Not "%%j"=="" Call :ReMove "%%i"   "%%j"
pause
GoTo :Eof

:ReMove
	Call :Space "File1" %1
	Call :Space "File2" %2
	Set Action=Move "%BoxIn%\%File1%" "%BoxOut%\%File2%"
	Call :MakeDir "%BoxOut%\%File2%"
	If Not Exist "%BoxOut%\%File2%" (
		%Action% >nul || (Echo %Action% &Echo:)
	) Else (
		Echo %Action% & Echo File Exist "%BoxOut%\%File2%"  &Echo:
	)
GoTo :Eof

:Space
	Set "TMPbegin=%~2"
	:Begin
	Set "TMPname=%TMPbegin%"
	If "%TMPbegin:~0,1%"==" " Set "TMPbegin=%TMPbegin:~1,999%"
	If "%TMPbegin:~-1%"==" " Set "TMPbegin=%TMPbegin:~0,-1%"
	If Not "%TMPbegin%"=="%TMPname%" GoTo :Begin
	If "%TMPname:~-1%"=="\" Set "TMPname=%TMPname:~0,-1%"
	Set "%~1=%TMPname%"
GoTo :Eof

:MakeDir
	If Not Exist "%~dp1" Md "%~dp1" 
GoTo :Eof

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


Последний раз редактировалось megaloman, 02-08-2017 в 13:55. Причина: Добавил вариант решения


Отправлено: 15:09, 01-08-2017 | #5