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

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

Ответить
Настройки темы
CMD/BAT - имя "входящего" файла без расширения

Аватара для Radiant

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


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

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


подскажите, может ли командная строка какой-либо переменной возвращать только ИМЯ "входящего" файла (мышкой закинутый в "Открыть с помощью" данного батника) без расширения? поясню, например, мне нужно переименовать расширение файла, а не добавить поверх существующего новое таким кодом:
Код: Выделить весь код
MOVE %1 %1.AVI

Отправлено: 08:26, 15-06-2010

 

Googler


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

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


Цитата Radiant:
переименовать расширение файла »
Код: Выделить весь код
REN "%~1" "%~n1.AVI"
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:33, 15-06-2010 | #2



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

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


Аватара для Radiant

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


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

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


благодарю! работает)) а где можно почитать на тему подобных переменных?

Отправлено: 08:39, 15-06-2010 | #3


Googler


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

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


Цитата Radiant:
где можно почитать на тему подобных переменных »
Код: Выделить весь код
FOR /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:47, 15-06-2010 | #4


Ветеран


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

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


Напишите, пожалуйста, возможно ли реализовать нижеследующее? Если да, то, прошу помочь.
1) Есть файл D:\DP_MassStorage_wnt5_x86-32_101002.7z;
2) Нужно при помощи *.cmd файла определить имя файла D:\DP_MassStorage_wnt5_x86-32_101002.7z, т. е. DP_MassStorage_wnt5_x86-32_101002 и записать это имя, т. е. DP_MassStorage_wnt5_x86-32_101002 в переменную *.cmd файла, чтобы затем эту переменную, постоянно меняющуюся в зависимости от имени файла, использовать при создании архива.

Что-то вроде такого должно получиться:
читать дальше »
Код: Выделить весь код
@ECHO OFF
SET NAZVANIYE_BEZ_.7z=DP_MassStorage_wnt5_x86-32_101002

ECHO Распаковка файла %SET NAZVANIYE_BEZ_.7z%.7z в папку D:\1.
"%PROGRAMFILES%\7-Zip\7z.exe" x "D:\%SET NAZVANIYE_BEZ_.7z%.7z" -o"D:\1"

ECHO Упаковка папки D:\1 в архив D:\%NAZVANIYE_BEZ_.7z%_(N591).7z
"%PROGRAMFILES%\7-Zip\7z.exe" a "D:\%NAZVANIYE_BEZ_.7z%_(N591).7z" "D:\1"
где текст после знака равно (в моём примере: DP_MassStorage_wnt5_x86-32_101002) в строке
читать дальше »
Код: Выделить весь код
SET NAZVANIYE_BEZ_.7z=
должен определяться автоматически, в зависимости от имени файла D:\DP_MassStorage_wnt5_x86-32_101002.7z, а не вписываться вручную, как у меня.
Спасибо.

Отправлено: 13:02, 07-10-2010 | #5


Аватара для gora

Ушёл из жизни


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

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


Код: Выделить весь код
For %%i In ("D:\DP_MassStorage_wnt5_x86-32_101002.7z") Do Set NAZVANIYE_BEZ_.7z=%%~ni
Только у Вас дальше ошибки, поправил:
Код: Выделить весь код
@ECHO OFF
For %%i In ("D:\DP_MassStorage_wnt5_x86-32_101002.7z") Do Set NAZVANIYE_BEZ_.7z=%%~ni

ECHO Распаковка файла %NAZVANIYE_BEZ_.7z%.7z в папку D:\1.
"%PROGRAMFILES%\7-Zip\7z.exe" x "D:\%NAZVANIYE_BEZ_.7z%.7z" -o"D:\1"

ECHO Упаковка папки D:\1 в архив D:\%NAZVANIYE_BEZ_.7z%_(N591).7z
"%PROGRAMFILES%\7-Zip\7z.exe" a "D:\%NAZVANIYE_BEZ_.7z%_(N591).7z" "D:\1"
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:45, 07-10-2010 | #6


Ветеран


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

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


Пожалуйста, поправьте этот код, чтобы работало. А работать должно:
1) определение имени файла без расширения и запись в переменную
2) соответственно, после рабочего пункта 1) должен работать весь код
читать дальше »
Код: Выделить весь код
SET 123=D:
SET 321=%123%\Zip
For %%i In ("%321%\DP_MassStorage_wnt5_x86-32_*.7z") Do Set FILENAME=%%~ni
IF NOT EXIST "%321%\%FILENAME%.7z" GOTO A

:A
ECHO Нету файла "%321%\%FILENAME%.7z" (без кавычек)
GOTO END
Спасибо.

Последний раз редактировалось SharkyEXE, 14-03-2012 в 00:22.


Отправлено: 00:16, 14-03-2012 | #7


Аватара для gora

Ушёл из жизни


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

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


SharkyEXE, так?
Код: Выделить весь код
@Echo Off 
Set m123=e:
Set m321=%m123%\Temp\MSP
Set maska=DP_MassStorage_wnt5_x86-32_*.7z
For %%i In ("%m321%\%maska%") Do Set FILENAME=%%~ni
If Defined FILENAME (
	Echo Найден файл "%m321%\%FILENAME%.7z" ^(без кавычек^)
) Else (
	Echo Не найден файл по маске "%m321%\%maska%" ^(без кавычек^)
)
Pause>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:44, 14-03-2012 | #8


Ветеран


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

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


Цитата gora:
SharkyEXE, так? »
Да, спасибо.

Отправлено: 14:53, 14-03-2012 | #9


Пользователь


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

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


Добрый лень
я переименовываю группы файлов таким макаром
Код: Выделить весь код
set LIN1=for /f "tokens=*" %%a in ('dir /b "%BINDIR%
set LIN2= do ren "%orgFILE%" 
%LIN1%ForgeAmidst-*.jar"')%LIN2%"%Rnam%GUImap_%%a"
то есть сам код вот...выше я просто его укоротил))
Код: Выделить весь код
set Rnam=1_
for /f "tokens=*" %%a in ('dir /b "%BINDIR%ForgeAmidst-*.jar"') do ren "%orgFILE%" "%Rnam%GUImap_%%a"
....
...
....
for /f "tokens=*" %%a in ('dir /b "%BINDIR%FullThrottleNEI-*.jar"') do ren "%orgFILE%" "%Rnam%GUI_3_S_%%a"
для каждого файла пишу свою строчку...
мне нужно теперь после имени файла каждого добавлять -FAXV
что бы на выходе получился из ForgeAmidst-1.1.1.jar в 1_GUImap_ForgeAmidst-1.1.1-FAXV.jar
сечас получаеться 1_GUImap_ForgeAmidst-1.1.1.jar-FAXV что сами видите не гуд

нашёл удобный способ для себя в 1 строчку...именно 1 строчку надо
Код: Выделить весь код
For %%i In ("%BINDIR%BetterAchievements-*.jar") Do (Set FILENAME=%%~ni&ren "%%i" "%Rnam%GUI_%FILENAME%-FA0V%poi1%")
но переменная FILENAME не работает в команде ren

Последний раз редактировалось DonQuixote, 29-12-2016 в 13:33.


Отправлено: 12:49, 29-12-2016 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Почему Windows при запуске файла с именем "start.exe" показывает кнопки как "Пуск"? Котяра Хочу все знать 9 22-06-2009 13:48
Подмена файла "hosts" для запрета "Одноклассников" D_Master Хочу все знать 10 17-10-2008 15:40
Dial-Up - Недоступно "высокоскоростное подключение запрашивающее имя пользователя и пароль" XaHyMaH Сетевые технологии 4 19-04-2008 14:31
Изменение "Мой компьютер" на "Имя текущего пользователя на имя компьютера" shcval Microsoft Windows 2000/XP 1 15-12-2006 21:01
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход