- 浏览: 3052609 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
链接:
[脚本分析] Quartett!的二进制脚本分析
[脚本分析] 从Quartett!的脚本得到资源列表
Quartett!的文本提取程序
Quartett!文本插入程序
这系列里,文件名一直是个麻烦的问题。一开始我拿到解出来的tkn文件就是找不到原本的文件名的:
脚本的临时文件名经历了几次变化:
- 原文件名的MD5(十六进制,32位)+".tkn" :这个是了解到数据包里的文件名是以MD5的形式保存之后采用的临时文件名
例如:f005d888964660664de2719962e2a053.tkn
- 原文件名的MD5(十六进制,32位)+"_"+原文件名长度(十进制)+".tkn" :在进一步研究打包时的计算需要后,发现需要原文件名长度
例如:f005d888964660664de2719962e2a053_12.tkn
- 文件编号(十进制,3位)+"_"+原文件名的MD5(十六进制,32位)+"_"+原文件名长度(十进制)+".tkn" :为了让文件名的顺序更接近原本的脚本在游戏里出现的顺序,在上一种的基础上进一步添加以文件修改时间为顺序的编号。
例如:000_f005d888964660664de2719962e2a053_12.tkn
但是距上次弄这些脚本已经有半年多的时间,当时编好号的*.tkn文件都不见了。今天鬼鬼问我要原始的、编过号的脚本,我就只能重新弄一份了。
写了段脚本来解决这个重命名的问题:
本来嘛这应该就OK了。但是这样编出来的号居然跟以前编出来的顺序不一样。我一时囧了。
怎么办呢。突然想起,鬼鬼手上有编过号的提取后的文本文件。既然如此就用那些文件来对应的做一次重命名就是了。
于是又写了个脚本:
问题顺利解决 T T
[脚本分析] Quartett!的二进制脚本分析
[脚本分析] 从Quartett!的脚本得到资源列表
Quartett!的文本提取程序
Quartett!文本插入程序
这系列里,文件名一直是个麻烦的问题。一开始我拿到解出来的tkn文件就是找不到原本的文件名的:
引用
一拿到已经从Script.dat中提取出来的脚本文件,我吓了一跳:文件名居然都是MD5……汉公那边果然还没把资源破解完善。不过没关系,只要文件内容是对的就能开工。可以确认的是,脚本(准确说是给到我手上的脚本)的后缀名是tkn。
脚本的临时文件名经历了几次变化:
- 原文件名的MD5(十六进制,32位)+".tkn" :这个是了解到数据包里的文件名是以MD5的形式保存之后采用的临时文件名
例如:f005d888964660664de2719962e2a053.tkn
- 原文件名的MD5(十六进制,32位)+"_"+原文件名长度(十进制)+".tkn" :在进一步研究打包时的计算需要后,发现需要原文件名长度
例如:f005d888964660664de2719962e2a053_12.tkn
- 文件编号(十进制,3位)+"_"+原文件名的MD5(十六进制,32位)+"_"+原文件名长度(十进制)+".tkn" :为了让文件名的顺序更接近原本的脚本在游戏里出现的顺序,在上一种的基础上进一步添加以文件修改时间为顺序的编号。
例如:000_f005d888964660664de2719962e2a053_12.tkn
但是距上次弄这些脚本已经有半年多的时间,当时编好号的*.tkn文件都不见了。今天鬼鬼问我要原始的、编过号的脚本,我就只能重新弄一份了。
写了段脚本来解决这个重命名的问题:
def sort_and_rename( dir = '.', &block ) entries = Dir.entries( dir ).grep( /^.*\.tkn$/i ).sort_by &block count = 0 entries.each do |e| File.rename e, "%03d_%s" % [ count, e ] count += 1 end end sort_and_rename { |e| File.mtime e }
本来嘛这应该就OK了。但是这样编出来的号居然跟以前编出来的顺序不一样。我一时囧了。
怎么办呢。突然想起,鬼鬼手上有编过号的提取后的文本文件。既然如此就用那些文件来对应的做一次重命名就是了。
于是又写了个脚本:
def cmp_and_rename( srcdir = '.', tgtdir = "./text" ) Dir.entries( tgtdir ).grep( /^(\d\d\d_)(.*)\.txt$/i ) do |fname| File.rename $2 << ".tkn", $1 << $2 << ".tkn" end end cmp_and_rename
问题顺利解决 T T
发表评论
-
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21508(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
RubyConf notes
2011-11-08 19:10 0symmetric coroutine Fiber#trans ... -
ShanghaiOnRails第八次线下活动——你不需要知道的Ruby实现
2010-11-12 15:39 2850上个月底正好赶上参加了ShanghaiOnRails 第八次线 ... -
JRuby的运行模式
2010-11-01 11:21 0// 老的JRuby还是用org.jruby.evaluato ... -
你不需要知道的Ruby草稿
2010-10-27 11:25 0一些Ruby实现 Ruby 1.8 树遍历解释 Ruby 1 ... -
Ruby里的fiber/coroutine例子
2010-01-26 18:33 0Ruby 1.9开始支持fiber。与“fiber”一词的一般 ... -
JRuby使用技巧收集
2009-12-28 09:35 0java.lang.Thread.new { puts &qu ... -
特殊类型的eigenclass
2009-12-17 03:39 0Fixnum的实例没有eigenclass true、fals ... -
奇怪的参数
2009-12-08 02:25 0默认参数与闭包的组合 真正的问题不是只是默认参数看起来很诡异, ... -
MacRuby的执行模式
2009-12-07 07:41 0mailing-list macruby-devel http ... -
Rubinius的执行模型
2009-12-05 15:22 0Rubinius wants to help YOU make ... -
Ruby 1.8和1.9中String#hash的实现
2009-11-22 18:23 01.8 string.c int rb_str_hash(s ... -
To囧:拿你来测测Watir...
2009-11-21 22:38 3446iaimstar 写道@RednaxelaFX 你最近ruby ... -
[标题党] MagLev中GC类的真相……
2009-11-21 14:46 0注意到本文的标题:我是说“GC类”的真相,不是说GC的真相哦~ ... -
小试rubyzip的一个脚本
2009-11-17 20:42 3462呼,今天开始3天都是新人培训,总算可以抽点时间发一帖。 现在在 ... -
爬一下Google和百度看口碑对它们做的SEO效果如何
2009-11-09 00:27 0#!/usr/bin/env ruby require ... -
把Mechanize的html_parser改回到Hpricot
2009-11-08 14:45 3120记得我最初开始用Nokogir ... -
使用新的RubyInstaller
2009-11-07 02:37 0Hpricot的安装需要编译,需要devkit -
Ruby metaprogramming tech notes
2009-09-28 15:39 0class Builder def self.build ...
相关推荐
在提供的压缩包文件中,有两个批处理文件:“批量重命名.bat”和“批量随机重命名.bat”。这两个文件很可能包含了不同的重命名策略,你可以通过运行它们来测试和了解其工作方式。在使用之前,请确保备份好你的文件,...
对于文件批量重命名,你可以创建一个名为“批量重命名.bat”的批处理文件,以下是一个基本的重命名脚本示例: ```batch @echo off setlocal enabledelayedexpansion set /a count=1 for %%i in (*) do ( set ...
在批量重命名文件时,我们需要用到`os.rename()`函数,它接受两个参数:旧文件名和新文件名,完成文件重命名。 ```python import os def batch_rename(old_dir, new_dir, pattern): for filename in os.listdir...
在IT领域,文件批量重命名是一项常见的操作,尤其对于数据管理、文件整理或者自动化脚本编写来说至关重要。这个“文件批量重命名.7z”压缩包显然包含了与批量重命名相关的工具或教程。7z是一种高效且开源的压缩格式...
这两个工具允许我们执行一系列的命令,包括对文件和文件夹的操作。在本例中,我们将重点讨论如何在命令行中批量重命名文件夹和添加前缀。 批量重命名文件夹和添加前缀的基本思路是编写一个批处理脚本,通常以`.bat`...
根据描述,它需要两个关键元素:一个id.txt文件和一个可执行(exe)文件。id.txt文件是新文件名的输入源,每一行代表一个文件的新名称。这样做的好处是可以确保新旧文件名的一一对应,避免重命名过程中出现混乱。 ...
需要注意的是,这两个示例都需要根据实际的文件路径和文件名进行调整。在实际应用中,应确保处理所有可能出现的错误情况,如文件不存在、权限问题等,并适当地处理这些异常。 总的来说,批量重命名文件根据修改时间...
例如,我们可以使用os和shutil这两个库来操作文件系统,使用re库来处理正则表达式,使用datetime库来处理日期和时间等。通过编写一个Python脚本,我们可以批量重命名文件,节省我们的时间和精力。这个脚本可以根据...
这两个方法接受两个参数,分别是原文件名和新文件名。同样,`renameSync`是同步操作,`rename`则是异步的。 4. **异常处理**:在进行文件操作时,我们应处理可能出现的错误,例如文件已存在、无权限等。这通常通过...
需要注意的是,`rename`命令需要三个参数,而非两个。 **示例1:** 将文件名中的`foo`替换为`foo0`: ``` rename 'foo' 'foo0' foo* ``` **示例2:** 使用通配符进行批量重命名: - `?`:代表任何单个字符。 - `...
如果原始文件名和证件号不在同一行,可以使用VLOOKUP或INDEX/MATCH函数来关联两个列表。VLOOKUP在垂直方向上查找匹配项,而INDEX/MATCH则允许你在任何方向上查找,这在数据结构不规则时更为灵活。 3. **使用公式...
在提供的压缩包文件中,我们有两个文件:"Python编程_从入门到实践.pdf",这可能是一本关于Python编程的参考书籍,可以帮助初学者理解Python基础;另一个是"rename.py",这是一个实际的Python脚本,很可能包含实现...
这里我们主要讨论基于批处理和Python这两种方法实现批量重命名。 批处理是Windows系统中的一种脚本语言,通过`.bat`文件执行一系列命令。在"20090620.bat"这个文件中,可能包含了使用`ren`或`rename`命令进行文件...
在IT领域,文件批量重命名是一项常见的操作,尤其在数据管理、文件整理或者自动化脚本编写时非常实用。批量重命名文件可以节省大量手动操作的时间,提高工作效率。在这个场景中,我们有两个关键元素:`ReName.exe`和...
这个脚本会将工作簿中的所有工作表按照Sheet1, Sheet2, Sheet3...的顺序重命名。当然,你可以根据实际需求调整新的工作表名称列表。在处理大量数据或者需要自动化处理Excel文件的工作流时,这样的脚本能够大大提高...
在这个脚本中,`batch_rename_images`函数接收两个参数:`directory`表示包含图片的文件夹路径,`new_prefix`是新的文件名前缀。`dir(fullfile(directory, '*.jpg'))`找到所有.jpg格式的图片,然后通过`for`循环遍历...
然后定义了一个名为batch_rename_sheets的函数,该函数接受两个参数:file_path表示需要修改的工作簿路径,new_names表示新的工作表名称列表。在函数内部,我们首先使用load_workbook函数加载指定路径的工作簿。然后...
5. 错误处理:如果在重命名过程中遇到冲突(如两个文件的新名称相同),软件通常会提示错误并提供解决方案,如自动增加序号以避免冲突。 批量重命名软件是提高文件管理效率的重要工具,尤其适用于需要整理大量照片...
如果两个文件的MD5值相同,那么它们的内容几乎可以确定是相同的。 **批量重命名的必要性** 在大量文件管理中,批量重命名有助于提高效率,尤其是当文件名不规范或者需要统一格式时。使用文件的MD5值作为新文件名,...
`os.rename()`函数可以用来重命名文件,其接受两个参数:旧文件名和新文件名。例如,要将文件"old_name.txt"重命名为"new_name.txt",代码如下: ```python import os old_file = 'old_name.txt' new_file = 'new_...