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

[文件操作] [已解决]批处理如何根据当前日期新建文件夹

原版为“计算机应用文摘”中介绍的新建当前日期文件夹的方法,它的菜单在文件夹中,我将之改成了在“新建”菜单中,就运行不了了,我应该怎样做才能在“新建”菜单中正常使用?
1

评分人数

    • batman: 感谢主动给标题标注[已解决]字样PB + 2
我是小菜菜……

楼主,你包里的那2个EXE文件是什么啊?不敢点,怕是病毒啊。。

TOP

可右击exe文件,选择“用Win RAR打开”。
我是小菜菜……

TOP

在其他论坛找到答案,贴出来和大家分享代码,原帖地址:http://bbs.verybat.org/viewthread.php?tid=15726&highlight=%2BWingl83

wxcute:
批处理改下就行
@echo off
cd/d %~dp1
set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
mkdir "%y%-%m%-%d%"

Wingl83 :
成功了,谢谢斑竹
另:请问cd/d %~dp1的作用是什么?还有,在其他的批处理看到的cd/d "%~dp0"又是什么意思呢?还有没有其他例如%~dp2、%~dp3之类的?

denev2004 :
dp0是bat所在的目录. .
dp1就不清楚了

wxcute :
%0 ~ %9 是 10 个可变参数,也是原始表示方法。
%~0,%~f0,%~dp0 等全是其扩展用法。详细参阅:CALL /? 帮助说明。
当然这里的 0 可以是 1 - 9 中的任意一个,只是含义不同而已。
%0 一般表示批自身,
上面例子中 %1 表示的意义说起来比较复杂(实际是不太好说明,可在批处理中添加 echo %1 查看),而 %~dp1 这个扩展用法就是表示正在使用右键的当前目录(即要新建 *.date 文件所在的目录)。
添加 echo %1 查看将一目了然。

Wingl83 :
原版和我修改的两个都是从右键调用的啊,为什么我修改过的就不行?

wxcute :
原版是右击目录,控制台会先进入被右击目录所在的目录下,再寻找 md.bat 来运行。
所以 .reg 文件可简化(即参数 %1 无需使用):
[HKEY_CLASSES_ROOT\Directory\shell\newdayfolder\command]
@="md.bat"
改后是点击了右键中 “新建” 下的 “日期目录” 子菜单,%1 指的即是这个特殊 ”文件“ 的完整路径,即 "%当前目录%\新建 日期目录.date"。
此时的控制台并不进入这个文件所在目录,因此我们用 cd/d %~dp1 来跳转到当前目录。再建立新目录。
当然可以省略代码,改成:md "%~dp1\%date:~,10%",(如果日期格式为:2009-02-04)

Wingl83 :
明白了,非常感谢!!

[ 本帖最后由 Wingl83 于 2009-7-14 21:21 编辑 ]
我是小菜菜……

TOP

返回列表