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


    可以了,应该是我刚才拷贝命令的时候拷错了。非常感谢大家,再加上你上次帮我弄的批处理添加标记,整理流程连在一起工作起来真的方便很多。
  目前一级和二级目录只能分开两个命令去处理,这样也方便不小了。

TOP

回复 16# 228630386


看高手写的代码就是好,有层次感,逻辑清楚。

哦,目录X是一定有了呀。我当时就在想嘛
目录有和没有怎么判定
有的话到底可能同时有几个
        如果有多个
                拷贝几个
                        拷贝一个的话拷贝那种条件的
                        拷贝多个的话哪个的路径复制到剪贴板

你的目录结构是这样的,                               
        根目录名称不定
                  |
                  |__要拷贝目录名称不定
                                        |
                                        |_____目录N
所有都是不定的,就没法判定目录N是不是存在了

要判定的话就得给个定的条件任意给以下一个条件:
        1)根目录名称
        2)根目录上级名称
        3)目录N名称或者命名规则
        目录N到底可能同时有几个
                如果有多个
                        拷贝几个
                                拷贝一个的话拷贝【哪种条件】的
                                拷贝多个的话哪个的路径复制到剪贴板

TOP

回复 17# 回家路上
  
 经你这么分析,他们的确有一些规律,就这命名中的中括号有区别:
  如果是一级目录通常用【】开始命名,全角中括号中会有英文:如【ppt】批处理之家
  
  如果是二级目录通常用 [] 开始命名,下级目录是用【】开始命名,半角中括号中会有英文:如 [ppt]批处理之家\【PPT】批处理之家-1

  然后目录N的文件命名通常是数字+一个空格或者两个空格+数字或者英文:如1 692112156, 8 692546122156

TOP

本帖最后由 pcl_test 于 2015-8-8 23:28 编辑

回复 18# 228630386
如果目录中方括号是有此规律,那么可以区分的
  1. @echo off
  2. (echo;%cd%|findstr "\[[^\]]*\][^\\]*\\【[^】]*】") >nul&&echo;当前二级||echo;当前一级
  3. pause
复制代码

TOP

回复 19# pcl_test
   
但要跟你之前给我的命令放在一起要怎么改呢?还是要大神帮忙,感激不尽!!!
@echo off & setlocal enabledelayedexpansion
set "fd=F:\提交成品"
if not exist "%fd%" md "%fd%"
pushd ..
for /f "delims=" %%i in ("%cd%") do set "td1=%%~nxi"
popd
for /f "delims=" %%j in ("%cd%") do set "td2=%%~nxj"
for /d %%a in (*) do xcopy "%%a" "%fd%\%td1%\%td2%\%%a\" /s /y
::win7及以上系统才有clip
echo;%fd%\%td1%\%td2%|clip
echo;目标路径已复制到剪贴板,按Ctrl+V即可粘贴&ping -n 2 0 >nul

TOP

本帖最后由 pcl_test 于 2015-8-9 10:58 编辑

回复 20# 228630386
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ("%cd%") do set "td=%%~nxi"&set "t=%%~dpi"
  3. (echo;%cd%|findstr "\[[^\[\]]*\][^\\]*\\【[^【】]*】") >nul&&(
  4.     for /f "delims=" %%j in ("!t:~,-1!") do set "td=%%~nxj\%td%"
  5. )
  6. set "fd=F:\提交成品"
  7. if not exist "%fd%" md "%fd%"
  8. for /d %%a in (*) do xcopy "%%a" "%fd%\%td%\%%a\" /s /y
  9. ::win7及以上系统才有clip
  10. echo;%fd%\%td%|clip
  11. echo;目标路径已复制到剪贴板,按Ctrl+V即可粘贴&ping -n 2 0 >nul
复制代码

TOP

回复 20# 228630386


高手都到这儿了,必须学习O(∩_∩)O~
放在第一级目录下(不管有没有二级目录)
  1. @echo off
  2. set "fd=F:\提交成品\"
  3. for /f "delims=" %%i in ('dir /ad /b^|findstr "【[^^【】]*】"') do set chd=\%%i
  4. set dd=%~dp0
  5. for /f "delims=" %%i in ("%dd:~0,-1%") do (
  6. set rootd=%%~dpi
  7. set td=%%~ni%chd%
  8. )
  9. if not exist "%fd%%td%" md "%fd%%td%"
  10. xcopy /e /y "%rootd%%td%" "%fd%%td%"
  11. echo;%fd%%td%|clip
  12. echo;目标路径已复制到剪贴板,按Ctrl+V即可粘贴&ping -n 2 0 >nul
  13. pause & exit /b
复制代码

TOP

回复 21# pcl_test
回复 22# 回家路上

真心感谢两位大侠,完美的解决了这个问题,因为我提出问题时没想到这么多的细节,让你们费心了!!!

TOP

返回列表