Board logo

标题: [其他] [已解决]批处理为移动子目录下文件添加密码卡住了 [打印本页]

作者: kafen    时间: 2020-2-4 17:51     标题: [已解决]批处理为移动子目录下文件添加密码卡住了

论坛里找了个移动子目录下所有文件到指定文件夹中的批处理,担心使用过程中不小心执行了,所以想添加一个密码,结果在执行创建指定文件夹后不能正常执行下一步了,烦请大伙们指教下,谢谢了
  1. @echo off & setlocal enabledelayedexpansion
  2. set passwd=
  3. set /p passwd=请输入密码:
  4. if /i %passwd%==123456 goto start
  5. echo 密码错误!任意键退出...
  6. pause>nul
  7. exit
  8.    :start   
  9. if not "%~1"==":" (
  10.    md %cd%\new 2>nul
  11. for /f "tokens=1*delims=/" %%i in ('"%~f0" :^|sort') do (
  12.         if /i "%%i"=="!strName!" (
  13.             set /a n+=1
  14.             move "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
  15.         ) else (
  16.             set "n="
  17.             move "%%j" %cd%\new\
  18.         )
  19.         set "strName=%%i"
  20.     )
  21.     pause
  22. ) else (
  23.     for /r %%i in (*) do echo %%~nxi/%%i
  24. )
复制代码

作者: flashercs    时间: 2020-2-4 19:45

  1. @echo off & setlocal enabledelayedexpansion
  2. if "%~1"==":" goto start
  3. set passwd=
  4. set /p passwd=请输入密码:
  5. if /i %passwd%==123456 goto start
  6. echo 密码错误!任意键退出...
  7. pause>nul
  8. exit
  9.    :start   
  10. if not "%~1"==":" (
  11.    md %cd%\new 2>nul
  12. for /f "tokens=1*delims=/" %%i in ('"%~f0" :^|sort') do (
  13.         if /i "%%i"=="!strName!" (
  14.             set /a n+=1
  15.             move "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
  16.         ) else (
  17.             set "n="
  18.             move "%%j" %cd%\new\
  19.         )
  20.         set "strName=%%i"
  21.     )
  22.     pause
  23. ) else (
  24.     for /r %%i in (*) do echo %%~nxi/%%i
  25. )
复制代码

作者: kafen    时间: 2020-2-4 20:43

回复 2# flashercs


    感谢,非常感谢!!!
作者: kafen    时间: 2020-2-4 21:09

回复 2# flashercs


您好,再请教下,能帮我看看下面的代码问题在哪里呢?如果最后能加入清空提取后的空子文件夹最好了,谢谢
@echo off & setlocal enabledelayedexpansion
if "%~1"==":" goto GTBegin
set passwd=
set /p passwd=请输入密码:
if /i %passwd%==123456 goto GTBegin
echo 密码错误!任意键退出...
pause>nul
exit

:GTBegin
echo.
echo.
echo ######################请选择要执行的操作######################
echo ------------1、输入数字1并按回车,以复制方式提取------------
echo ------------2、输入数字2并按回车,以剪切方式提取------------
echo.
echo.
echo 请选择要执行的操作
set /p GTConfirm=
if "%GTConfirm%"=="1" goto GTCOPY
if "%GTConfirm%"=="2" goto GTMOVE
echo 请输入正确的指令
pause >nul
goto GTBegin


:GTCOPY  
if not "%~1"==":" (
   md %cd%\new 2>nul
for /f "tokens=1*delims=/" %%i in ('"%~f0" :^|sort') do (
        if /i "%%i"=="!strName!" (
            set /a n+=1
            copy "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
        ) else (
            set "n="
            copy "%%j" %cd%\new\
        )
        set "strName=%%i"
    )
    pause
) else (
    for /r %%i in (*) do echo %%~nxi/%%i
)

goto end

:GTMOVE  
if not "%~1"==":" (
   md %cd%\new 2>nul
for /f "tokens=1*delims=/" %%i in ('"%~f0" :^|sort') do (
        if /i "%%i"=="!strName!" (
            set /a n+=1
            move "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
        ) else (
            set "n="
            move "%%j" %cd%\new\
        )
        set "strName=%%i"
    )
    pause
) else (
    for /r %%i in (*) do echo %%~nxi/%%i
)

:end
exit
作者: smss    时间: 2020-2-4 21:18

for /f "delims=" %%a in ('dir /ad /b /s ^|sort /r') do (rd "%%a" 1>nul 2>nul)

反正就这意思你自己改改路径
作者: kafen    时间: 2020-2-4 21:31

回复 5# smss
谢谢,上面的代码还运行不了
作者: flashercs    时间: 2020-2-4 21:48

没有问题. 有问题自己提.
作者: kafen    时间: 2020-2-4 22:23

回复 7# flashercs

我是添加了选项后不能正常运行呀,您刚才帮我改的加了密码的是可以运行的
作者: flashercs    时间: 2020-2-4 22:40

回复 8# kafen


    是不能运行,这还得测试一下.麻烦
作者: flashercs    时间: 2020-2-4 22:57

回复 8# kafen
  1. @echo off & setlocal enabledelayedexpansion
  2. if "%~1"==":" goto GroupFiles
  3. set passwd=
  4. set /p passwd=请输入密码:
  5. if /i %passwd%==123456 goto GTBegin
  6. echo 密码错误!任意键退出...
  7. pause
  8. exit /b
  9. :GTBegin
  10. echo.
  11. echo.
  12. echo ######################请选择要执行的操作######################
  13. echo ------------1、输入数字1并按回车,以复制方式提取------------
  14. echo ------------2、输入数字2并按回车,以剪切方式提取------------
  15. echo.
  16. echo.
  17. set /p GTConfirm=请选择要执行的操作:
  18. if "%GTConfirm%"=="1" goto GTCOPY
  19. if "%GTConfirm%"=="2" goto GTMOVE
  20. echo 请输入正确的指令
  21. pause
  22. goto GTBegin
  23. :GTCOPY  
  24. md "%cd%\new"
  25. for /f "tokens=1* delims=/" %%i in ('"%~f0" :^|sort') do (
  26.         if /i "%%i"=="!strName!" (
  27.             set /a n+=1
  28.            copy "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
  29.         ) else (
  30.             set "n="
  31.            copy "%%j" %cd%\new\
  32.         )
  33.         set "strName=%%i"
  34.     )
  35. pause
  36. goto end
  37. :GTMOVE  
  38. md "%cd%\new"
  39. for /f "tokens=1* delims=/" %%i in ('"%~f0" :^|sort') do (
  40.         if /i "%%i"=="!strName!" (
  41.             set /a n+=1
  42.             move "%%j" "%cd%\new\%%~ni(!n!)%%~xi"
  43.         ) else (
  44.             set "n="
  45.             move "%%j" %cd%\new\
  46.         )
  47.         set "strName=%%i"
  48.     )
  49. pause
  50. goto end
  51. :GroupFiles
  52. for /r %%i in (*) do echo %%~nxi/%%i
  53. goto end
  54. :end
  55. exit /b
复制代码

作者: kafen    时间: 2020-2-4 23:49

回复 10# flashercs


  谢谢谢谢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2