比如我想截断文件名
文件名有英文、中文。
使用fname:~0,10对于中文和英文操作都是一样的。
然而中文占2个字节,截出来的会比英文长一倍。
请问如何按照10个字节截取?
bat如何按字节长度截取文件名
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CodeBytes 2023-02-20 16:22关注
该回答引用ChatGPT
要按照字节而不是字符来截取文件名,可以使用批处理中的certutil命令。certutil是Windows自带的命令行工具,可以用来执行各种加密和解密操作,包括将二进制文件转换为十六进制格式。
以下是一个示例批处理脚本,用于将文件名截取为10个字节:
@echo off setlocal EnableDelayedExpansion set "filename=%~1" :: 使用 certutil 命令将文件名转换为十六进制格式 for /f "delims=" %%a in ('echo !filename! ^| certutil -f -encodehex') do set "hex=%%a" :: 截取前 20 个字符(即 10 个字节) set "hex=!hex:~0,20!" :: 将截取后的十六进制字符串转换回原始文件名 set "newname=" for /l %%a in (0,2,18) do ( set "byte=!hex:~%%a,2!" set /a "char=0x!byte!" set "newname=!newname!!char!" ) echo Renaming "%filename%" to "%newname%" rename "%filename%" "%newname%"
此脚本将输入的文件名作为第一个参数,并使用certutil将文件名转换为十六进制格式。然后,它截取了前20个字符(即10个字节),并将结果转换回原始文件名。最后,它使用rename命令将文件重命名为新名称。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 向数据表用newid方式插入GUID问题
- ¥15 multisim电路设计
- ¥20 用keil,写代码解决两个问题,用库函数
- ¥50 ID中开关量采样信号通道、以及程序流程的设计
- ¥15 U-Mamba/nnunetv2固定随机数种子
- ¥15 C++行情软件的tick数据如何高效的合成K线
- ¥15 vba使用jmail发送邮件正文里面怎么加图片
- ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
- ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
- ¥15 svpwm波形异常求解答