Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Petrovich1900
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 15
1

Переименовать файл в имя папки, в которой он находится

15.12.2014, 01:45. Просмотров 2290. Ответов 7
Метки нет (Все метки)

скажите, а можно ли прописать чтобы файл переименовывался так как называется папка в которой лежат и этот файл и батник?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2014, 01:45
Ответы с готовыми решениями:

Переименовать файл в имя папки, в которой он находится
есть 30 папок с разными названиями в каждой папке 1 файл, его надо переименовать в такое же имя как...

Переименовать файл в имя папки
Доброго времени суток всем! Есть каталог foldername. В нем находятся несколько файлов .ts...

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот...

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

Копирование определённых файлов из папки, в которой находится сам копирующий bat-файл, в папку игры "Steam"
Здравствуйте, пишу скрипт который должен скопировать из текущей папки(где сам скрипт) в папку в...

7
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
15.12.2014, 02:09 2
Лучший ответ Сообщение было отмечено Petrovich1900 как решение

Решение

Windows Batch file
1
@for %%i in ("my_file.txt") do @for %%j in ("%~dp0.") do @ren "%%i" "%%~nxj%%~xi"
1
Petrovich1900
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 15
26.10.2018, 06:12  [ТС] 3
Привет! В рамках выше написаного скрипта нужно сделать чтобы файл с расширением .txt переносился из директории в которой запустился BAT файл в директорию (напрмер D:\files), но в той папке откуда его переместили оставался ярлык на него.
0
alpap
1921 / 1413 / 468
Регистрация: 26.04.2015
Сообщений: 4,816
26.10.2018, 21:54 4
так пойдет?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
:: Достаточно (так как в этой же папке)
:: set "f=file.txt"
:: Для наглядности
set "f=C:\papka\file.txt"
set "out_path=D:\files"
 
if not exist "%out_path%" md "%out_path%"
for %%a in ("%f%") do set "shortcut=%out_path:\=/%"& set "name_f=%%~nxa"& set "name_y=%%~na.url"
>"%out_path%\%name_y%" (echo [InternetShortcut]& echo url="file:///%shortcut%/%name_f%")
move "%out_path%\%name_y%" "%~dp0"
move "%f%" "%out_path%"
pause
0
26.10.2018, 21:54
Petrovich1900
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 15
27.10.2018, 07:35  [ТС] 5
Да спасибо, я ничего не понял, но все работает! Очень круто! ! А почему он делает ярлык интернета? Нельзя сделать чтобы ярлык был обычный виндовский? Как если с альтом перетаскиваешь
0
alpap
1921 / 1413 / 468
Регистрация: 26.04.2015
Сообщений: 4,816
27.10.2018, 16:09 6
Цитата Сообщение от Petrovich1900 Посмотреть сообщение
Нельзя сделать чтобы ярлык был обычный
в cmd нет, пишите в раздел vbs или powershell

если хочется переместить все файлы в папке (ну кроме bat, конечно) по одному пути и оставить на них ярлыки - это уже хоть будет похоже на автоматизацию:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
set "out_path=D:\papka"
 
if not exist "%out_path%" md "%out_path%"
for /f "delims=" %%a in ('dir /a-d/b "*.*"^|find /v "%~nx0"') do call :# "%out_path%\%%~na.url" "InternetShortcut" "%out_path:\=/%/%%~nxa" "%%a" "%out_path%"
pause& exit
 
:#
 >"%~1" (echo [%~2]& echo url="file:///%~3")& move "%~1" "%~dp0"
 move "%~4" "%~5"
exit /b
0
Petrovich1900
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 15
30.10.2018, 08:14  [ТС] 7
Не работает с русским текстом. Он переименовывает нормально но в свойствах ярлыка появляется он ссылается на * Ї*аў*д ҐйҐ а*§.psd* вот такую белиберду
0
Moxito6
3 / 2 / 1
Регистрация: 08.02.2018
Сообщений: 43
30.10.2018, 14:13 8
Лучший ответ Сообщение было отмечено Petrovich1900 как решение

Решение

Цитата Сообщение от Petrovich1900 Посмотреть сообщение
Не работает с русским текстом. Он переименовывает нормально но в свойствах ярлыка появляется он ссылается на * Ї*аў*д ҐйҐ а*§.psd* вот такую белиберду
(код alpap + moxito)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
chcp 1251>NUL
set "f=C:\papka\file.txt"
set "out_path=D:\files"
if not exist "%out_path%" md "%out_path%"
for %%a in ("%f%") do set "shortcut=%out_path:\=/%"& set "name_f=%%~nxa"& set "name_y=%%~na.url"
>"%out_path%\%name_y%" (echo [InternetShortcut]& echo url="file:///%shortcut%/%name_f%")
move "%out_path%\%name_y%" "%~dp0"
move "%f%" "%out_path%"
echo Press any button to exit application
pause>nul
exit /b
Должно работать.
1
30.10.2018, 14:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2018, 14:13

Поиск и удаление папки, в которой находится подпапка с заданным именем
Помогите написать bat*ник. Собственно что хочется: Чтобы он искал и удалял папку, в которой...

Копирование на флешку папки, имя которой меняется
Имеется папка на рабочем столе "Данные (14.10.2012)" Завтра она будет "Данные (15.10.2012)" итд....

Переименовать файл, взяв имя из другого файла
Всем привет, прошу прощения за глупый, возможно вопрос. Стоит задача переименовывать файл в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru