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

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

Ответить
Настройки темы
CMD/BAT - [решено] Записать имя папки в которой лежит батник в переменную а потом эту же папку переим.

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


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

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


Здравствуйте! Я в batниках хорошо не разбираюсь и поэтому у меня возникла проблема требующяя решения. Нужно чтобы батник записал имя той папки в которой лежит он сам в переменную. %oldipforsite%. Заранее спасибо

Отправлено: 20:48, 23-06-2009

 

Аватара для gora

Ушёл из жизни


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

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


Цитата bobr95:
Нужно чтобы батник записал имя той папки в которой лежит он сам в переменную. %oldipforsite% »
Попробуйте так:
Код: Выделить весь код
@Echo Off
Set oldipforsite=%~dp0
For /D %%a In ("%oldipforsite:~0,-1%.txt") Do Set oldipforsite=%%~na

Echo %oldipforsite%
Pause>nul
Exit
Цитата bobr95:
а потом эту же папку переим. »
А вот переименовать папку из батника, запущенного из этой папки, не позволит система.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:11, 23-06-2009 | #2



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

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


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


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

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


А можно эту переменную передать в другой батник и из него переименовать?

Отправлено: 21:15, 23-06-2009 | #3


Аватара для gora

Ушёл из жизни


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

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


Цитата bobr95:
А можно эту переменную передать в другой батник и из него переименовать? »
Можно попробовать так:
Код: Выделить весь код
@Echo Off
:: Задача1 - получение в переменную имени папки
Set oldipforsite=%~dp0
For /D %%a In ("%oldipforsite:~0,-1%.txt") Do Set oldipforsite=%%~na

:: Задача2 - переименование папки
Set NewFolder=Folder123
CD ..
REN %~dp0 %NewFolder%
Exit
Только вот переменная oldipforsite здесь не требуется, т.к., она содержит только имя папки, а передавать нужно полный путь к этой папке и ухищрения по выделению имени папки не нужны.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 23-06-2009 | #4


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


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

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


Пасибо, робает. Теперь допишу койче, скомпилирую в ехе и отправлю в автозагрузку!

Отправлено: 22:29, 23-06-2009 | #5


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


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

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


Всё очень просто, в самом начале программы надо написать
@set oldipforsite=%cd%
@echo %oldipforsite%
@pause

Отправлено: 12:36, 12-10-2011 | #6


Ветеран


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

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


white155, Ваш код ошибочен, ибо переменная окружения «CD» содержит текущий путь на текущем диске, а не путь к пакетному файлу.

Подсказка
Пакетный файл может запускаться не только двойным щелчком из Проводника, но, прежде всего — указанием пути к пакетному файлу:
Цитата:
Код: Выделить весь код
E:\Песочница\0085>0001.cmd
E:\Песочница\0085
Для продолжения нажмите любую клавишу . . .

E:\Песочница>E:\Песочница\0085\0001.cmd
E:\Песочница
Для продолжения нажмите любую клавишу . . .

E:\Песочница>.\0085\0001.cmd
E:\Песочница
Для продолжения нажмите любую клавишу . . .

E:\>E:\Песочница\0085\0001.cmd
E:\
Для продолжения нажмите любую клавишу . . .

D:\>E:\Песочница\0085\0001.cmd
D:\
Для продолжения нажмите любую клавишу . . .

D:\>
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 12-10-2011 | #7


Аватара для SANIOK_AV

Старожил


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

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


Цитата gora:
Попробуйте так:
Код:
@Echo Off
Set oldipforsite=%~dp0
For /D %%a In ("%oldipforsite:~0,-1%.txt") Do Set oldipforsite=%%~na
Echo %oldipforsite%
Pause>nul
Exit »
а как работает конструкция %%~na ?

Отправлено: 16:30, 10-04-2012 | #8


Аватара для SANIOK_AV

Старожил


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

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


Плюс ещё такой ньюанс:

если текущий каталог у нас "1", то при выполнении сценария
Код: Выделить весь код
@Echo Off
Set oldipforsite=%~dp0
For /D %%a In ("%oldipforsite:~0,-1%.txt") Do Set oldipforsite=%%~na
Echo %oldipforsite%
Pause>nul
Echo oldipforsite= %oldipforsite%>1.txt
Exit
содержание файла 1.txt будет таково: oldipforsite=
то есть единичка почему-то не занесётся

Отправлено: 18:42, 10-04-2012 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как записать в переменную результат выполнения команды? MSI Скриптовые языки администрирования Windows 64 24-12-2020 18:20
CMD/BAT - [решено] Как определить IP и записать его в переменную? (OS: Windows Vista) Voshal Скриптовые языки администрирования Windows 7 17-05-2010 11:43
[решено] Чистка диска - можно ли удалить эту папку koles Microsoft Windows 2000/XP 6 01-12-2006 12:05
Как создать переменную, имя которой такоеже как значение + несколько латин. символов? E-mail Вебмастеру 12 26-11-2005 10:14
Как узнать переменную которой передается значение?? FADE Вебмастеру 2 30-06-2004 18:45




 
Переход