2016-02-16 1 views
1

Я хотел изменить имя файла, поддерживающего расширение. Условие было, если проставление даты не удалось, может быть из-за отсутствия ВСТ, то я хотел бы пометить файл как «без знака»Изменение имени файла с использованием оконного скрипта (поддерживающего расширение)?

код Подписанные был найден here

Сценарий является:

пакетный файл: sign.bat

арг2: file1.exe

ожидается выход , если не помогает, то временных меток необходимо отметить «file1.exe» в «file1_unsigned.exe»
После всех поисков, что я сделал,

echo Timestamping failed , marking the file as unsigned. 
set file_name=%2 
set unsigned_file_name=%file_name:.exe=_unsigned.exe% 
ren %file_name% %newfilename% 

Это удерживало расширение файла, добавив string в исходный файл.

Есть ли лучший способ сделать это? может использоваться сопоставление шаблонов?

ответ

0

Вы можете сделать относящиеся непосредственно:

echo Timestamping failed , marking the file as unsigned. 
echo ren "%2" "%~n2_unsigned%~x2" 
+0

Да, это помогло. Большое спасибо ! – Sach106

0

Для этого вы можете использовать FOR /F. Посмотрите на этот код:

@echo off 
for /f %%f in ("something.txt") do (
    echo %%~nf 
    echo %%~xf 
) 

Этот выход будет:

что-то

.exe

Так что в вашем случае вы можете сделать это:

echo Timestamping failed, marking the file as unsigned. 
for /f %%f in ("%2") do (
    ren %%f %%~nf_unsigned%%~xf 
) 

~n возвращает имя и ~x расширение файла. Эта конструкция может быть длиннее, но она отлично работает для любого файла, а не только для .exe.