![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавление имени папки в имя файлов, которые лежат в этой папке |
|
CMD/BAT - Добавление имени папки в имя файлов, которые лежат в этой папке
|
Новый участник Сообщения: 8 |
Добрый день, нужна помощь. Написал тут не много, а дальше трабл. Как сделать так чтоб при нажатии несколько раз на бат имя папки в файле не дублировалось, а лишь менялось если имя папки изменилось?
rem функция для добавления имени папки к имени файла :Recur for /R %p% %%b in ("*.dwg") do ( for /f "delims=\ tokens=1,2,3,4,5,6" %%A in ('echo %%b') do (rename "%%b" "%%~F %%~nb.dwg") ) for /R %p% %%b in ("*.xlsx") do ( for /f "delims=\ tokens=1,2,3,4,5,6" %%A in ('echo %%b') do (rename "%%b" "%%~F %%~nb.xlsx") ) exit /B |
|
Отправлено: 11:36, 26-06-2018 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать sway38,
Цитата sway38:
@Echo Off rem Set "BoxIn=Z:\Box_Arc\xxxx" Set "BoxIn=%~dp0" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%" Set "Mask="*.dwg" "*.xlsx"" For /R "%BoxIn%" %%f In (%Mask%) Do Call :DirFile "%BoxIn%" "%%f" "%%~nxf" GoTo :Eof :DirFile For /F "tokens=1* delims=#" %%i IN (%3) DO ( If "%%j"=="" Ren %2 "%~nx1#%~3" &&Exit /B 0 If /I "%%i#"=="%~nx1#" Exit /B 0 If /I Not "%%i#"=="%~nx1#" Ren %2 "%~nx1#%%j" &&Exit /B 0 ) Exit /B 1 Слегка подправил цикл для надёжности. |
|
------- Отправлено: 19:14, 26-06-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Последний раз редактировалось sway38, 26-06-2018 в 20:29. Отправлено: 19:45, 26-06-2018 | #12 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
тра это имя папки, или кусок имени непереименованного файла? Надо через пробел - извольте. Криво отработает пробел в имени файла - я не виноват
@Echo Off Set "Delim= " Set "BoxIn=%~dp0" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%" Set "Mask="*.dwg" "*.xlsx"" For /R "%BoxIn%" %%f In (%Mask%) Do Call :DirFile "%BoxIn%" "%%f" "%%~nxf" GoTo :Eof :DirFile For /F "tokens=1* delims=%Delim%" %%i IN (%3) DO ( If "%%j"=="" Ren %2 "%~nx1%Delim%%~3" &&Exit /B 0 If /I "%%i%Delim%"=="%~nx1%Delim%" Exit /B 0 If /I Not "%%i%Delim%"=="%~nx1%Delim%" Ren %2 "%~nx1%Delim%%%j" &&Exit /B 0 ) Exit /B 1 |
|
------- Отправлено: 22:01, 26-06-2018 | #13 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата sway38:
@echo off set "sh=-" set "d=%~dp0" setlocal enabledelayedexpansion for %%a in ("%d:~0,-1%.") do set "np=%%~nxa" for /f "delims=" %%f in ('dir /a-d/b/s "*.xlsx" "*.dwg"^|find /v "%~f0"') do set "nf=%%f"& echo "%%f"|>nul find "%sh%" && ren "%%f" "%np%%sh%!nf:*%sh%=!" || ren "%%f" "%np%%sh%%%~nxf" endlocal exit |
|
Отправлено: 23:00, 26-06-2018 | #14 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 04:49, 27-06-2018 | #15 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать А можно еще в этот батник одну функцию дописать?
Нужно чтобы в папке где лежит батник он находил файл ***** - Параметры.xlsx узнавал его путь и вставлял его в первую строку файла config.cfg, лежащего здесь же в папке. https://b.radikal.ru/b25/1806/5f/560e3771913e.jpg |
Отправлено: 05:09, 27-06-2018 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Добавление названия папки к имени файлов. | Viktor99 | Скриптовые языки администрирования Windows | 7 | 16-11-2017 17:56 | |
VBS/WSH/JS - Копирование файлов в папке и ее подпапках которые не старше 5минут | gremlintv2 | Скриптовые языки администрирования Windows | 1 | 30-03-2016 14:30 | |
CMD/BAT - удаление файлов которые содержаться в папке 1 из 2рой папки | PunkRediska | Скриптовые языки администрирования Windows | 1 | 31-05-2013 19:53 | |
CMD/BAT - [решено] Добавление к имени файла имя папки | Arsenik77 | Скриптовые языки администрирования Windows | 12 | 13-08-2011 20:28 | |
Как переименовать имя аккаунта в XP с изменением имени его папки и других файлов. | Alikber | Microsoft Windows 2000/XP | 4 | 06-03-2006 00:15 |
|