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


    把14行改成
  1. set wql=where "drive='%Desktop:~0,2%' and path='%MyPath:\=\\%' and extension!='LNK'"
复制代码
1

评分人数

    • erjnasrtnws: OK 可行了 请大侠关注下15楼 我刚刚写的 谢 ...技术 + 1

TOP

本帖最后由 erjnasrtnws 于 2015-11-26 13:44 编辑

回复 16# WHY

很好!!! 谢谢
只差一步就完美了  可否试下?? 呵呵

补充更正 ----   实现和3楼差不多的效果,就是把不是今天新建的文件(是从其它盘拷贝到桌面上的不是今天的文件)也可以放入归档到(以今天的日期命名的文件夹)之中

TOP

回复 17# erjnasrtnws


    顶楼并没有这种要求啊,3楼的代码我没有试,以下代码不知道是不是你想要的:
  1. @echo off
  2. set "s=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  3. for /f "tokens=2*" %%i in ('reg query "%s%" /v Desktop') do (
  4.     set "Desktop=%%j"
  5. )
  6. set "MyPath=%Desktop:~2%\"
  7. set wql=where "drive='%Desktop:~0,2%' and path='%MyPath:\=\\%' and extension!='LNK'"
  8. (for /f "tokens=1*" %%i in ('wmic datafile %wql% get creationdate^,name^|find "\"') do (
  9.     set "D=%%i"
  10.     setlocal enabledelayedexpansion
  11.     for %%k in ("%Desktop%\归档\!D:~0,8!") do (
  12.         endlocal
  13.         for /f "delims=" %%j in ("%%j") do (
  14.             if /i not "%%~fj" == "%~f0" (
  15.                 md "%%~k\"
  16.                 move "%%~fj" "%%~k\"
  17.             )
  18.         )
  19.     )
  20. )) 2>nul
复制代码
1

评分人数

TOP

回复  ygqiang
大侠请问,你的代码XP可以使用吗?我在XP中使用发现桌面的文件的确没有了呵呵 这效果很好  ...
erjnasrtnws 发表于 2015-11-25 10:12



    xp/win7 64系统都测试过。。。除了快捷方式不改动。。。
其他都正常。。。

TOP

回复 18# WHY

厉害啊 您的代码这么简洁啊 呵呵
达到了我想要的效果了 好像有点小问题 日期不对一下子生成两个日期  你看下图片 我刚刚测试的


希望大侠改进一下
补充 大侠可以保留昨天 和之前的文件不动吗 ??我只想归档当天的文件可以吗!!麻烦了

TOP

回复 19# ygqiang


OK  谢谢回复  可能我电脑有些问题  装的精简版XP的  我有空去其他电脑试下

TOP

回复 20# erjnasrtnws


    14楼的意思是,把桌面上今天(2015/11/26)创建的文件移动到 桌面\归档\20151126 文件夹中,这也是你在顶楼要求的

18楼的意思是,把桌面上除LNK快捷方式和批处理自身以外的文件移动到“桌面\归档\以文件创建日期命名”的文件夹中。之所以出现两个以日期命名的文件夹,是因为有两种不同日期创建的文件

TOP

本帖最后由 erjnasrtnws 于 2015-11-26 11:29 编辑

回复 22# WHY


哦  不好意思 大侠看的如此仔细 !谢谢了  我一定认真修改下!

TOP

本帖最后由 erjnasrtnws 于 2015-11-26 13:50 编辑

回复 22# WHY

谢谢大侠指正 不好意思啊  表达不准确我已更正

TOP

本帖最后由 erjnasrtnws 于 2015-11-26 14:05 编辑

回复 16# WHY


    请问大侠 如果有相同文件就直接覆盖了,请教如何不要覆盖,直接变成   名称-1  名称-2 这样形式的  
大侠有空的话   帮忙在看看吧 谢谢了 !!!

TOP

谢谢热心的各位大侠 问题已经解决很好了 虽然离完美只差一步 已经非常满意了 !!!对帮我解答的大侠,再次衷心说声谢谢了,好人一生平安!!!!

TOP

回复 26# erjnasrtnws


    最终代码是啥?都需要用到哪些exe文件?

TOP

本帖最后由 erjnasrtnws 于 2016-1-9 13:41 编辑

回复 27# ygqiang
  1. @echo off
  2. set "s=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  3. for /f "tokens=2*" %%i in ('reg query "%s%" /v Desktop') do (
  4.     set "Desktop=%%j"
  5. )
  6. for /f %%i in ('wmic os get LocalDateTime^|findstr /b [0-9]') do (
  7.     set "Today=%%i"
  8. )
  9. set "Today=%Today:~0,8%"
  10. md "%Desktop%\归档\%Today%\" 2>nul
  11. set "MyPath=%Desktop:~2%\"
  12. set wql=where "drive='%Desktop:~0,2%' and path='%MyPath:\=\\%' and extension!='LNK'"
  13. for /f "tokens=1*" %%i in ('wmic datafile %wql% get creationdate^,name^|findstr /b %Today%')do (
  14.     for /f "delims=" %%j in ("%%j") do (
  15.         if /i not "%%~fj" == "%~f0" move "%%~fj" "%Desktop%\归档\%Today%\"
  16.     )
  17. )
  18. pause
复制代码
我现在就用的这个 感觉横好  不需要EXE的
你可以试试 只处理桌面上的今天产生的文件  在桌面上已日期归档 (是移动文件不是复制)
这么好的论坛!!!!

TOP

返回列表