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

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

Ответить
Настройки темы
CMD/BAT - Заменить расширение файла.

Аватара для semiono

Ветеран


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

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


Код: Выделить весь код
%ProgramFiles%\Au3Info\Aut2Exe.exe /in "%1" /icon %WinDir%\exec.ico /nopack /ansi /x64 /gui  /companyname "Microsoft" /filedescription "%1" /fileversion "1.0.0.0" /legalcopyright "All Rights" /productname "%1" /productversion "1.0.0.0"
А нельзя простым способом заменить расширение файла в двух %1, втором и третьем. Чтобы первый вызов был обычным test.au3, а далее test.exe и test.exe?

-------
Полезное сообщение


Отправлено: 01:58, 13-01-2023

 

Старожил


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

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


попробуйте выразиться яснее

Отправлено: 02:38, 13-01-2023 | #2



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

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


Ветеран


Contributor


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

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


Если %1 это test.au3
то %~n1.exe это test.exe

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

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

Отправлено: 08:22, 13-01-2023 | #3


Аватара для YuS_2

Crazy


Contributor


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

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



Цитата megaloman:
Если %1 это test.au3
то %~n1.exe это test.exe »
А... хмм... я конечно, cmd использую редко, но параметры запуска пакетных файлов ещё не совсем из памяти стерлись... это чтобы опять не было обвинений в обзываниях
%1 - это первый параметр либо самого батника, либо call
%~n1 - то же самое, но из параметра выделяется имя файла по последней точке в полном имени (если, конечно, расширение у него есть)
Как-то так:
2023-1-13 12-56-38.png

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

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 13-01-2023 в 10:09.


Отправлено: 10:02, 13-01-2023 | #4


Старожил


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

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


для того чтобы работали ~x, ~n и т.д. нужно чтоб был вызов батника

call :TEST a.txt

goto :EOF

:TEST
echo %~n1
goto :EOF


то есть надо писать батник - в командной строке не сработает по моему
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:48, 13-01-2023 | #5


Аватара для semiono

Ветеран


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

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


Цитата megaloman:
%~n1.exe »
Удивительно, но это работает.


Цитата YuS_2:
%~n1 - то же самое, но из параметра выделяется имя файла по последней точке в полном имени (если, конечно, расширение у него есть) »
Это самое трудное в cmd/bat, визуально ничего не напоминает, хотя регэкспы ещё труднее))
Но на этот раз кажется понял.

А вот на Fasm

Код: Выделить весь код
include '%fasm%/win64ax.inc'
section '.code' executable
start:
        sub rsp,8

        invoke SHGetSpecialFolderPath,NULL,a,CSIDL_PROGRAM_FILES,NULL
        invoke PathAddBackslash,a
        invoke lstrcat,a,'Au3Info'
        invoke PathAddBackslash,a
        invoke lstrcat,a,'Aut2exe.exe'

        invoke GetBinaryType,a,z
        cmp eax,NULL
        jz exit

        invoke SHGetSpecialFolderPath,NULL,b,CSIDL_WINDOWS,NULL
        invoke PathAddBackslash,b
        invoke lstrcat,b,'exec.ico'

        invoke GetCommandLine
        mov ebx,eax
@@:
        cmp byte [ebx],NULL
        je  sh
        cmp byte [ebx],' '
        je  @f
        inc ebx
        jmp @r
@@:
        inc ebx
        cmp byte [ebx],' '
        je  @r

        mov [i],ebx
        invoke lstrcat,c,[i]
        invoke PathRemoveExtension,[i]
        invoke PathAddExtension,[i],'.exe'

        invoke wsprintf,f,'/in %s /icon %s /nopack /ansi /x64 /gui /companyname "New" /filedescription "%s" /fileversion "1.0.0.0" /legalcopyright "(c)" /productname "%s" /productversion "1.0.0.0"',c,b,[i],[i]
sh:
        invoke ShellExecute,NULL,NULL,a,f,NULL,SW_NORMAL
exit:
        invoke ExitProcess,NULL

section '.data' readable writable

        a rb MAX_PATH
        b rb MAX_PATH
        c rb MAX_PATH
        f rb MAX_PATH
        i dd MAX_PATH
        z dd NULL

section '.idata' import readable

        library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL',shlwapi,'SHLWAPI.DLL',user32,'USER32.DLL'
        include '%fasm%/api/kernel32.inc'
        include '%fasm%/api/shell32.inc'
        include '%fasm%/api/shlwapi.inc'
        include '%fasm%/api/user32.inc'

-------
Полезное сообщение


Отправлено: 20:33, 13-01-2023 | #6


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата semiono:
хотя регэкспы ещё труднее »
Всё относительно...
Скажем так: для русского "китайская грамота" - темный лес... а для китайца или для того, кто её изучил? Они ведь и пишут, и разговаривают по-китайски!
Так и тут, всё кажется очень сложным, пока не изучено... а вот после изучения, уже не будет казаться "китайской грамотой"...

-------
scio me nihil scire. Ѫ

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

Отправлено: 15:15, 14-01-2023 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - формат файла или расширение файла не действительно niklipin84 Microsoft Windows 7 2 11-12-2015 17:52
Расширение файла Вован46 Хочу все знать 5 22-03-2014 13:36
2008 R2 - Расширение файла. Ошибка печати prohorp Windows Server 2008/2008 R2 3 07-02-2014 08:02
Как определить расширение файла zif Хочу все знать 10 24-04-2013 18:05
Как поменять расширение файла? firedevil Хочу все знать 2 21-01-2010 10:28




 
Переход