本帖最后由 away 于 2014-1-23 22:50 编辑
两年前,我写了一个根据文件后缀名把不同类型的文件放到不同文件夹的批处理。- @echo off
- ::设置数据库
- set ddc="lnk" "amr"
- set n1=文档:txt rtf doc pdf docx
- set n2=视频:flv f4v avi mp4
- set n3=图片:png jpg bmp gif
- set n4=音频:mp3 wav m4a
- set n5=批处理:bat
- set n6=压缩:7z zip
- set n7=程序:exe
- ::开始任务
- setlocal enabledelayedexpansion
- for /l %%e in (1 1 12) do if defined n%%e (
- for /f "tokens=1,2* delims=::" %%f in ("!n%%e!") do (
- for %%h in (%%g) do set .%%h=.%%f
- )
- )
- for %%d in (!ddc! "%~nx0") do set .%%~d=:y
- for %%i in ("!CD!\*") do (
- if not "!%%~xi!"==":y" (
- if not defined .%%~nxi (
- if not defined %%~xi set %%~xi=%%~xi文件&set %%~xi=.\整理于此\!%%~xi:~1!
- if not exist "!CD!\!%%~xi:~1!" md "!CD!\!%%~xi:~1!"
- move "%%i" "!CD!\!%%~xi:~1!"
- )
- )
- )
复制代码 这个批处理的原理就是:对一大堆文件后缀名设定一个后缀名。然后对文件夹里的文件进行处理。如果这个文件的后缀名已经定义,那就移动到定义文件夹,如果没有定义。设文件名的后缀名为定义,然后移到定义的文件夹。我曾经听批处理之家的大大说过“变量越多,内存占用就越大”。如果那位大大说的是真的话,这样一来,内存占用也就特别大了。现在我把这个批处理重写了一遍。- @echo off
- set ddc="子目录文件转移2.5.bat"
- setlocal enabledelayedexpansion
- for %%d in (!ddc! "%~nx0") do set %%~d=:21685key
- :开始按关键词分类
- for /f "skip=26 tokens=1,2* delims=::" %%f in (%~nx0) do (
- for %%p in (%%g) do (
- for %%e in ("%cd%\*%%~p*") do (
- if not defined %%~nxe (
- if not exist "%cd%\%%f" md "%cd%\%%f"
- move "%%e" "%cd%\%%f"
- )
- )
- )
- )
- )
- :开始按后缀名分类
- for %%q in ("!CD!\*") do (
- if not defined %%~nxq (
- set %%~xq=%%~xq文件&set %%~xq=!%%~xq:~1!
- if not exist "!CD!\整理于此\!%%~xq!" md "!CD!\整理于此\!%%~xq!"
- move "%%q" "!CD!\整理于此\!%%~xq!"
- )
- )
- exit
- :数据库
- 文档:.epub .txt
- 整理于此\图片:.jpg .jpeg .png .gif
- 文档:.txt .rtf .doc .pdf .docx
- 视频:.flv .f4v .avi .mp4
- 图片:.png .jpg .bmp .gif
- 音频:.mp3 .wav .m4a
- 翻唱歌曲:翻唱
- 纯音乐:纯音乐 钢琴 piano 伴奏
复制代码 好了,我开始问问题了。
1,
第一个直接设定一大堆的变量,然后一个一个按变量来移动,而第二个完全不用【%XX%】变量,而是改用%%X的for的特有变量,这样一来第二个的内存占用是否比第一个少?抑或是一样?但是第二个的减少变量的原理就是一次又一次的读取批处理本身最后的那几行。这样CPU会不会比第一个高?高多少?还是一样?这两个批处理哪个更好?(资源占用方面)
2,
请告诉我为什么变量越多,内存占用就越大?
最后····关于贵论坛的分类我真的不知道应该分系统相关好还是其它好,最后还是选了系统相关,第一次在贵论坛发提问帖子,有什么错了请提示一下。
最后个人根据回答的结论结果:
1,理论上第二个的内存占用会比第一个少,CPU应该一样吧。
2,3楼已经解答了,变量就是暂时储存在内存里,所以变量越多内存越大。嗯,很简单的问题呢- - |