我想更改保留扩展名的文件名。条件是如果时间戳失败可能是因为TSA不可用,那么我想将文件标记为' unsigned'
已找到签名代码here
情景是:
批处理文件: sign.bat
arg2: 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%
通过在原始文件中添加字符串来保留文件扩展名。
有更好的方法吗?可能正在使用模式匹配?
答案 0 :(得分: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
。
答案 1 :(得分:0)
你可以直接做:
echo Timestamping failed , marking the file as unsigned.
echo ren "%2" "%~n2_unsigned%~x2"