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

[其他] [已解决]批处理为移动子目录下文件添加密码卡住了

论坛里找了个移动子目录下所有文件到指定文件夹中的批处理,担心使用过程中不小心执行了,所以想添加一个密码,结果在执行创建指定文件夹后不能正常执行下一步了,烦请大伙们指教下,谢谢了
  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. )
复制代码

回复 10# flashercs


  谢谢谢谢!

TOP

回复 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
复制代码
微信:flashercs
QQ:49908356

TOP

回复 8# kafen


    是不能运行,这还得测试一下.麻烦
微信:flashercs
QQ:49908356

TOP

回复 7# flashercs

我是添加了选项后不能正常运行呀,您刚才帮我改的加了密码的是可以运行的

TOP

没有问题. 有问题自己提.
微信:flashercs
QQ:49908356

TOP

回复 5# smss
谢谢,上面的代码还运行不了

TOP

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

反正就这意思你自己改改路径

TOP

回复 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

TOP

回复 2# flashercs


    感谢,非常感谢!!!

TOP

  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. )
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表