[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 9# wqte45

如下代码说明》"%~1"即为用双引号包裹的目标文件名(可内含空格),变量crc即为0x之后的数值
  1. for /f "delims=" %%i in (' crc32 "%~1" ') do (set "i=%%i")
  2. set "crc=%i:* bytes) is 0x=%"
  3. echo,%crc%
复制代码

TOP

本帖最后由 aloha20200628 于 2024-2-19 19:30 编辑

回复 12# wqte45

帮你订正的代码说明》
如命令行参数为空则批处理脚本直接退出;
采用setlocal确保外部变量与本脚本变量互不干扰;
若crc数值长度可能变化则建议仍用 %str:* bytes) is 0x=% 替代 %str:~-8%
  1. @echo off & if "%~1"=="" (exit/b) else setlocal
  2. for /f "skip=3 delims=" %%i in (' crc32 "%~1" ') do set "str=%%i"
  3. echo,file: %~1
  4. echo,crc32: %str:~-8%
  5. echo,rename: %~n1 %str:~-8%%~x1
  6. ren "%~1" "%~n1 %str:~-8%%~x1"
  7. endlocal & exit/b
复制代码
1

评分人数

TOP

回复 14# wqte45

这是一个古老的话题,查过中外有关老帖,至今无解,其实只要路径文件名中不含空格,不止&字符,还有一些所谓的特殊字符如()^等均会暴雷。绕行之路或是在路径文件名中加空格,或不用这些特殊字符。

TOP

返回列表