我之前使用过的一种方法是将文件用作数组,将文件夹用作数组字典。
现在请听我解释 - 虽然一开始可能看起来很愚蠢,但它确实有一些优点。
这个想法是将文件视为数组,甚至支持使用FOR
命令进行本地、易于使用的数组迭代。
array.txt
these
are
items
in
an
array
对于一个二维数组,您可以使用类似上面的文件夹。 (例如,像0.txt
到100.txt
这样的名称)。请记住,您可能需要有一个单独的文件来索引这些,因为数组目录不一定按您在for循环中期望的方式排序,而且更像是哈希映射,其中是string -> [string]
。
或者,我相信解析csv也不会太难(请记住逗号和字符串值内的制表符!;))
对于一个混合数组(其中一些项是其他数组,一些是字符串),您可以使用类似以下格式的文件:
complex-array.txt
"value
"1
"2
\path.txt
\path2.txt
以及像这样的文件夹:
complex-array\path.txt
complex-array\path2.txt
如果一行以一个字符开头,则它是一个值,如果以另一个字符开头,则它是一个路径(可能相对于此文件)。当然,这可能是递归的。
不过有一个大问题。该脚本会留下文件,每次运行前(可能)需要清理这些文件。(我说“可能”是因为不能保证在脚本运行时电脑不会被拔掉电源)。
我对此的性能影响不确定,并且批处理本来就很慢,所以也许这并不重要。 (我相当肯定变量名混淆策略更快,因为值会在内存中停留更长时间)