8dot3format文件名修改的问题

在使用Ranorex进行自动化测试时遇到8dot3格式导致的processname识别错误,通过改变识别标志或禁用8dot3功能来解决。禁用8dot3包括修改注册表和命令行设置,确保文件名一致性。

问题概述

  • 一个关于8dot3命名更改的问题
    • 最近做自动化测试的项目,使用Ranorex进行桌面程序控件选择的时候,默认根据processname进行查找;但有些情况下,不能正确某些控件所在process的识别processname,因为系统对这个名字进行了改写,比如abcdefghi.exe变成了abc~1.exe
    • 这还不是最重要的,重要的是, 当在不同的机器上使用Ranorex,或者重装系统后,或者进行了某些windows更新后,对上述文件命的更改都会改变,比如有时候有改成了abc~2.exe/bdc~3.exe,无规律。
    • 另,经验证,这个名字的改动和显示在任务管理器是一样的。

解决方案有两个:

1、不再使用processname作为识别的标志

可以使用pos/size的方法, 定义在桌面程序的某个区域内寻找合适的控件,如果桌面上没有其他的控件和目标控件大小类似(实际上一般不会有这个问题,不会有两个控件同时显示并且完全重合),上述问题得到解决

2、禁掉8dot3功能

在dos系统中,文件命名方式为8.3格式,即文件名不超过8个字符,扩展名不超过3个字符。形如:xxx.exe 。而现在Windows系统文件名长度最长可达255个字符了。
8dot3短文件格式是在dos系统继承下来的, 在win7中仍然默认开启。所以如果文件名过长,那么系统会对其进行自动重命名。可以禁用这个功能,这样每次识别的名称都是原始名称,就可以用上述processname的方法啦。

禁用8dot3 format步骤

#These are properties serialized from an IA installer for use with an IA uninstaller. #Fri Jul 25 16:39:02 CST 2025 CHOSEN_INSTALL_FEATURE_2=INTERFACE CHOSEN_INSTALL_SET=Full CHOSEN_INSTALL_FEATURE_1=SERVER IA_UPGRADE_BASE_VERSION= DB_USER=system IA_RESPONSEFILE_PATH= CHOSEN_INSTALL_BUNDLE_LIST=SERVER,INTERFACE,DEPLOY,KSTUDIO,KDTS ENCODING="GBK" HAS_PERMISSION=true CHOSEN_INSTALL_BUNDLE_5=KDTS CHOSEN_INSTALL_BUNDLE_4=KSTUDIO CHOSEN_INSTALL_BUNDLE_3=DEPLOY CHOSEN_INSTALL_BUNDLE_2=INTERFACE CHOSEN_INSTALL_BUNDLE_1=SERVER DEPENDENCY_STATUS=success -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\LICENSE_EN=\u662F DEPENDENCY_REPORT= IS_EMPTY=true EMPTY_STRING= EXTRACTOR_DIR=F\:\\ AM_scram-sha-256=1 CACLS_EXECUTE_STDERR= MAC_CHEWABLE= WIN_START_MENU=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu CACLS_EXECUTE_EXITCODE=0 WIN_WINDOWS=C\:\\Windows MACX_USER_APPLICATIONS= SKIP_UNINSTALL=false CASE-SENSITIVE=0 IA_UPGRADE_BASE_LOCATION= -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\Uninstaller.lax=\u662F INSTALLER_JDK_HOME= INITDB_STDOUT=\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set dir\=E\:\\KingBase\\KESRealPro\\V009R001C002B0014 \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set user\=system \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set pass\=KingBaseSuncere2025 \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set data\=E\:\\KingBase\\data \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set encoding\="GBK" \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set port\=54321 \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set mode\="oracle" \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set block_size\="8" \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set case-insensitive\="yes" \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set authenticate\="scram-sha-256" \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>set custom\= \n\nC\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows>call "E\:\\KingBase\\KESRealPro\\V009R001C002B0014"\\install\\script\\initdb.bat system KingBaseSuncere2025 "E\:\\KingBase\\KESRealPro\\V009R001C002B0014" "E\:\\KingBase\\data" 54321 "GBK" "8" "oracle" "yes" "scram-sha-256" "" 1>>"E\:\\KingBase\\KESRealPro\\V009R001C002B0014"\\install\\Logs\\init.log 2>&1 \n AM_sm4=0 AM_sm3=0 ENCODING_EXECUTE_STDERR= SYSTEM_DRIVE_ROOT=C\:\\ PROGRAMS_DIR_32=C\:\\Program Files (x86) USER_INPUT_BLOCK16_RESULT=0 IS_EMPTY_VARIABLE_NAME=IS_EMPTY IS_CONTAIN_BLANK=CONTAIN_BLANK SYSTEM_32=C\:\\Windows\\SysWOW64 VARIABLE_NAME=AuthenticateMethod -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\vcredist_x64.exe=\u662F CHOSEN_INSTALL_FEATURE_NUM=5 CASE-INSENSITIVE=1 INSTALL_SUCCESS=SUCCESS CONTAIN_BLANK=false INSTALL_DRIVE_ROOT=E\:\\ MVLICENSE_STDOUT=\u5220\u9664\u6587\u4EF6 - E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\Server\\bin\\license.dat\n1\n NULL= CASEINSENSITIVE_EXECUTE_EXITCODE=0 DEPENDENCY_FAILURES= UNIX_USR_LOCAL_BIN= CREAT_FOLDER_STDERR= CASEINSENSITIVE="yes" FREE_DISK_SPACE_MEGABYTES=55226 INSTALLER_JAVA_EXECUTABLE=E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\install\\jre\\bin\\java.exe FREEDISK_SPACE=55226 ENCRYPT_VARIABLE_NAME2=DB_PASS2 ENCRYPT_VARIABLE_NAME1=DB_PASS WIN_PROGRAMS_MENU=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\resource\\\\iawin32.dll=\u662F SPACE_EXITCODE=0 FREE_DISK_SPACE_BYTES=57909161984 ia.mac.invoked.user= KB_LICENSE_PATH=$USER_MAGIC_FOLDER_3$$/$Server$/$bin$/$license.dat STARTUP=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup DATABASE_MODE_MYSQL=0 FREE_DISK_SPACE_KILOBYTES=56551916 ENCRYPT_MODE=ENCODE -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\LICENSE_ZH=\u662F DEFAULT_CONSOLE_CUSTOM=\ WIN_QUICK_LAUNCH_BAR=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Internet Explorer\\Quick Launch\\ DISK_VAR=FREEDISK_SPACE EXECUTE_STDOUT_2=20250725 AM_scram-sm3=0 PRODUCT_NAME=KingbaseES V9 USER_HOME=C\:\\Users\\Administrator EXECUTE_FILE_TARGET=E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\install\\script\\sysctl.bat -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\resource\\\\remove.exe=\u662F -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\initdb.bat=\u662F OUTPUT_VARIABLE=EXECUTE_STDOUT_2 KSPATH_STDOUT=\n\u6210\u529F\: \u6307\u5B9A\u7684\u503C\u5DF2\u5F97\u5230\u4FDD\u5B58\u3002\n\u5220\u9664\u6587\u4EF6 - C\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows\\temp.txt\n\u5220\u9664\u6587\u4EF6 - C\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows\\tmp.txt\n\u5220\u9664\u6587\u4EF6 - C\:\\Users\\Administrator\\AppData\\Local\\Temp\\I1753431910\\Windows\\tmp1.txt\n SPACE_STDERR= INSTALLER_TITLE=KingbaseES V9 \u5B89\u88C5\u7A0B\u5E8F DEVELOPER_DISK_SPACE_ADDITIONAL= KSPATH_EXECUTE_EXITCODE=0 CHOSEN_INSTALL_FEATURE_LIST=SERVER,INTERFACE,DEPLOY,KSTUDIO,KDTS UNIX_OPT= VCREDIST_NAME=Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.40664 -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\unregister.bat=\u662F UNIX_USR_BIN= INITDB_STDERR= USER_MAGIC_FOLDER_25= BLOCK_SIZE="8" USER_MAGIC_FOLDER_24= USER_MAGIC_FOLDER_23= USER_MAGIC_FOLDER_22= USER_MAGIC_FOLDER_21= USER_MAGIC_FOLDER_20= ENCODING_EXECUTE_EXITCODE=0 SYSCTL_EXITCODE=0 -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\resource\\\\invoker.exe=\u662F USER_SELECTED_DATA_FOLDER=E\:\\KingBase\\data WIN_COMMON_START_MENU=C\:\\ProgramData\\Microsoft\\Windows\\Start Menu DB_ENCODING_GB2312=0 -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\resource\\\\win64_32_x64.exe=\u662F BLOCKSIZE_EXECUTE_EXITCODE=0 USER_INPUT_BLOCK8_RESULT=1 USER_MAGIC_FOLDER_19= CURRENT_DATE=202507250430 WIN_COMMON_STARTUP=C\:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp USER_MAGIC_FOLDER_18= ENOUGH_SPACE_VARIABLE_NAME=HAS_ENOUGHSPACE CHOSEN_INSTALL_FEATURE_LIST_LONG=\u6570\u636E\u5E93\u670D\u52A1\u5668,\u63A5\u53E3,\u6570\u636E\u5E93\u90E8\u7F72\u5DE5\u5177,\u6570\u636E\u5E93\u5F00\u53D1\u7BA1\u7406\u5DE5\u5177,\u6570\u636E\u5E93\u8FC1\u79FB\u5DE5\u5177 PROGRAMS_DIR=C\:\\Program Files USER_MAGIC_FOLDER_17= USER_MAGIC_FOLDER_16= KSPATH_EXECUTE_STDERR= USER_MAGIC_FOLDER_15= USER_MAGIC_FOLDER_14= FREE_DISK_SPACE_GIGABYTES=53 USER_MAGIC_FOLDER_13= USER_MAGIC_FOLDER_12=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\KingbaseES V9 USER_MAGIC_FOLDER_11=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\KingbaseES V9\\Client Tools DO_NOT_INSTALL=Do Not Install USER_MAGIC_FOLDER_10= MVLICENSE_STDERR= DOLLAR=$ WIN_COMMON_PROGRAMS_MENU=C\:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs USER_SHORTCUTS=C\:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\KingbaseES V9 CONTAIN_SPACE_CHAR_VARIABLE_NAME=CONTAIN_SPACECHAR MVLICENSE_EXITCODE=0 PRODUCT_ID=42935a12-1f08-11b2-8349-8bb7aaf645eb COMMA=, INSTALLER_MERGE_MODULE= REQUIRE_SPACE=5581 SYSCTL_STDERR$='system' \u4E0D\u662F\u5185\u90E8\u6216\u5916\u90E8\u547D\u4EE4\uFF0C\u4E5F\u4E0D\u662F\u53EF\u8FD0\u884C\u7684\u7A0B\u5E8F\n\u6216\u6279\u5904\u7406\u6587\u4EF6\u3002\n DEPENDENCY_SUCCESSES= DEFAULT_CONSOLE_CUSTOM_NAME=DEFAULT_CONSOLE_CUSTOM FONTS=C\:\\Windows\\Fonts USER_INPUT_BLOCK32_RESULT=0 INITCUSTOM= REGISTER_STDERR$='system' \u4E0D\u662F\u5185\u90E8\u6216\u5916\u90E8\u547D\u4EE4\uFF0C\u4E5F\u4E0D\u662F\u53EF\u8FD0\u884C\u7684\u7A0B\u5E8F\n\u6216\u6279\u5904\u7406\u6587\u4EF6\u3002\n REQUIRED_DISK_SPACE_MEGABYTES=3282 IS_VCREDIST_EXISTS=true INSTALLER_JAVA_DOT_HOME=E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\install\\jre MODE_EXECUTE_STDERR= DESKTOP=C\:\\Users\\Administrator\\Desktop JAVA_HOME=E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\install\\jre IA_8DOT3_FILENAMECREATION_STATE=False SYSTEM=C\:\\Windows\\system32 BLOCKSIZE_EXECUTE_STDERR= -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\sysctl.bat=\u662F AuthenticateMethod_EXECUTE_EXITCODE=0 -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\clearPath.bat=\u662F -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\register.bat=\u662F HAS_ENOUGHSPACE=true MAC_APPLE_MENU= REQUIRED_DISK_SPACE_KILOBYTES=3360850 DB_ENCODING_DEFAULT=0 REGISTER_STDOUT=The beginning of Register Kingbase ES.\nRunning register.bat...\nRegister Kingbase ES Finish.\n \\=$prop.file.separator$ CACLS_EXECUTE_STDOUT= MAC_CONTROL_PANELS= MODE="oracle" DATABASE_MODE_PG=0 CONTAIN_SPACECHAR=false REQUIRED_DISK_SPACE_BYTES=3441510982 OS_ENCODING_GBK=true USER_MAGIC_FOLDER_9= CHOSEN_INSTALL_BUNDLE_NUM=5 USER_MAGIC_FOLDER_8= DB_ENCODING_UTF8=0 USER_MAGIC_FOLDER_7= DB_ENCODING_GBK=1 USER_MAGIC_FOLDER_6= USER_MAGIC_FOLDER_5= USER_MAGIC_FOLDER_4=E\:\\KingBase\\KESRealPro\\V009R001C002B0014\\install IA_CUSTOM_CODE_ZIP_SIZE=0 USER_MAGIC_FOLDER_3=E\:\\KingBase\\KESRealPro\\V009R001C002B0014 USER_MAGIC_FOLDER_2=E\:\\KingBase\\install USER_MAGIC_FOLDER_1=E\:\\KingBase REGISTER_EXITCODE=0 AuthenticateMethod_EXECUTE_STDERR= -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\Uninstall\\\\resource\\\\iawin64_x64.dll=\u662F AuthenticateMethod="scram-sha-256" USER_INSTALL_DIR=E\:\\KingBase ;=$prop.path.separator$ CREAT_FOLDER_EXITCODE=0 \:=$prop.path.separator$ DB_ENCODING_GB18030=0 OS400_INSTALL_DIR=/KingbaseES V9 OVERWRITE_IA_CHMOD=false FOLDER=$USER_SELECTED_DATA_FOLDER$ TEMP_DIR=C\:\\Users\\Administrator\\AppData\\Local\\Temp IA_INSTALLER_OPTIONS=true /=$prop.file.separator$ MAC_EXTENSIONS= SYSCTL_STDOUT=The beginning of Start Kingbase ES.\nRunning sysctl.bat...\n\nSERVICE_NAME\: kingbase9_R1_instance \n TYPE \: 10 WIN32_OWN_PROCESS \n STATE \: 2 START_PENDING \n (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)\n WIN32_EXIT_CODE \: 0 (0x0)\n SERVICE_EXIT_CODE \: 0 (0x0)\n CHECKPOINT \: 0x0\n WAIT_HINT \: 0xea60\n PID \: 16120\n FLAGS \: \nStart Kingbase ES Complete.\n LINK_ROOT_PATH=$USER_MAGIC_FOLDER_3$ DB_PASS2=S2luZ0Jhc2VTdW5jZXJlMjAyNQ\=\= INPUT_VARIABLE=$DB_USER$ FORMAT=yyyyMMdd MAC_PREFERENCES= REQUIRED_SPACE=100 IA_CLASSPATH= DB_PORT=54321 DATABASE_MODE_ORACLE=1 SHORTCUT_NAME=\u5FEB\u6377\u65B9\u5F0F -fileOverwrite_E\\\:\\\\KingBase\\\\KESRealPro\\\\V009R001C002B0014\\\\install\\\\script\\\\setPath.bat=\u662F INITDB_EXITCODE=0 PRODUCT_VERSION_NUMBER=9.1.0.14 HAS_PERMISSION_VARIABLE_NAME=HAS_PERMISSION CASEINSENSITIVE_EXECUTE_STDERR= CHOSEN_INSTALL_BUNDLE_LIST_LONG=\u6570\u636E\u5E93\u670D\u52A1\u5668,\u63A5\u53E3,\u6570\u636E\u5E93\u90E8\u7F72\u5DE5\u5177,\u6570\u636E\u5E93\u5F00\u53D1\u7BA1\u7406\u5DE5\u5177,\u6570\u636E\u5E93\u8FC1\u79FB\u5DE5\u5177 MACX_DOCK= PROGRAMS_DIR_64=C\:\\Program Files REQUIRED_DISK_SPACE_GIGABYTES=3 CREAT_FOLDER_STDOUT= UNIX_USER_HOME=C\:\\Users\\Administrator EXTRACTOR_EXECUTABLE=F\:\\KINGBASE.EXE DB_PASS=S2luZ0Jhc2VTdW5jZXJlMjAyNQ\=\= IA_GLOBAL_REG_LOCATION=C\:\\Program Files\\Zero G Registry\\.com.zerog.registry.xml SYSTEM_64=C\:\\Windows\\system32 WIN_COMMON_DESKTOP=C\:\\Users\\Public\\Desktop CHOSEN_INSTALL_FEATURE_5=KDTS IA_INSTALLER_STATUS=SUCCESS CHOSEN_INSTALL_FEATURE_4=KSTUDIO MODE_EXECUTE_EXITCODE=0 =\ CHOSEN_INSTALL_FEATURE_3=DEPLOY
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值