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

遇同名文件跳过
  1. @echo off
  2. for /f "delims=" %%I in ('dir/b/s/a-d') do (
  3. for /f "tokens=1,2* delims=\" %%a in ("%%~dpI") do (
  4. if not "%%c"=="" (
  5. if not exist "%%a\%%b\%%~nxI" move "%%I" "%%a\%%b"
  6. )
  7. )
  8. )
  9. pause
复制代码

TOP

回复 9# comicguests

笔误,漏写了一个 % 号
  1. @echo off
  2. for /f "delims=" %%I in ('dir/b/s/a-d') do (
  3.         for /f "tokens=1,2* delims=\" %%a in ("%%~dpI") do (
  4.                 if not "%%c"=="" (
  5.                         if not exist "%%a\%%b\%%~nxI" move "%%I" "%%a\%%b"
  6.                 )
  7.         )
  8. )
  9. pause
复制代码

TOP

本帖最后由 FOR 于 2012-7-3 01:43 编辑
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b/s/a-d') do (
  3. set "str=%%i"
  4. setlocal enabledelayedexpansion
  5. set "str=!str:*%cd%=!"
  6. for /f "tokens=1 delims=\" %%a in ("!str!") do (
  7. if not "%%i"=="!cd!\%%~nxi" move "%%i" "!cd!\%%a"
  8. )
  9. endlocal
  10. )
  11. pause
复制代码

TOP

多打了个括弧,你那里没提示“以达到最大递归层”吗?
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b/s/a-d') do (
  3.         set "str=%%i"
  4.         setlocal enabledelayedexpansion
  5.         set "str=!str:*%cd%=!"
  6.         for /f "tokens=1 delims=\" %%a in ("!str!") do (
  7.                 if not "%%i"=="!cd!\%%~nxi"  move "%%i" "!cd!\%%a"
  8.         )
  9.         endlocal
  10. )
  11. pause
复制代码

TOP

19楼代码我实际测试是成功的。

TOP

再试试这个
  1. @echo off&set /a n=1
  2. call :Loop "%cd%"
  3. :loop
  4. for /f "tokens=1* delims=\" %%i in ("%~1") do (
  5. set /a n+=1
  6. if not "%%j"=="" call :Loop "%%j"
  7. )
  8. for /f "delims=" %%I in ('dir/b/s/a-d') do (
  9. for /f "tokens=%n%* delims=\" %%a in ("%%I") do (
  10. if not "%%b"=="" move "%%I" "%cd%\%%a"
  11. )
  12. )
  13. pause
复制代码

TOP

本帖最后由 FOR 于 2012-7-4 12:53 编辑

我也是 win7 32位旗舰版
19、24楼的代码我这里都能成功
12楼的代码能正常运行,怎么24楼的就会不行呢??

TOP

返回列表