Board logo

标题: [文件操作] 批处理加密文件不好使了咋办? [打印本页]

作者: 0421爱好者    时间: 2023-1-7 10:11     标题: 批处理加密文件不好使了咋办?

Windows 7系统,"C:\Program Files (x86)\WinRAR\WinRAR.exe"
运行下面代码批处理时,提示:“‘rar’不是内部或外部命令,也不是可运行的程序或批处理文件
求大神老师给修改一下。
  1. @echo off
  2. REM ======================================================================
  3. REM
  4. REM Batch File -- Created with SAPIEN Technologies PrimalScript 4.0
  5. REM
  6. REM NAME: 批量加密打包单个文件
  7. REM
  8. REM AUTHOR: hitme ,
  9. REM DATE : 2006-12-16
  10. REM
  11. REM COMMENT: 密码由数字和小写英文字母随机组成,长度固定为10位
  12. REM
  13. REM ======================================================================
  14. :repare
  15. del pass.txt 2>nul
  16. md package 2>nul
  17. setlocal ENABLEDELAYEDEXPANSION
  18. :input
  19. echo.
  20. set /p input=加密打包文件还是文件夹^(F=文件,D=文件夹,A=全部^)
  21. echo.
  22. if /i "!input!"=="f" (set key=/aa) else (
  23.       if /i "!input!"=="d" (set key=/ad) else (
  24.                 if /i "!input!"=="a" (set key=) else goto :input))
  25. :code
  26. for /f "delims=" %%i in ('dir !key!/b^|findstr /v "%~nx0 package"') do (
  27.       set m=
  28.       for /l %%l in (1 1 10) do (
  29.           set/a var=!random!%%36
  30.           set "str=0123456789abcdefghijklmnopqrstuvwxyz"
  31.           call set str=%%str:~!var!,1%%
  32.           set m=!m!!str!
  33.       )
  34.       echo %%i:!m!>>pass.txt
  35. )
  36. :package
  37. set path=!path!;c:\program files\winrar
  38. if exist pass.txt (
  39.      for /f "tokens=1* delims=:" %%i in (pass.txt) do rar a -p%%j "package\%%~ni.rar" "%%i"
  40.      move pass.txt package
  41.      start "" package
  42. ) else echo...未能打包 & pause
  43. endlocal
复制代码

作者: Batcher    时间: 2023-1-7 20:31

回复 1# 0421爱好者


第41行改成这样试试:
  1. set "path=%path%;C:\Program Files (x86)\WinRAR"
复制代码

作者: 0421爱好者    时间: 2023-1-7 23:27

回复 2# Batcher
感谢老师的帮助
老师,那怎样能把地址改成适合各种安装路径情况下都能使用的呢?
作者: LJY4.0    时间: 2023-1-9 17:15

回复 3# 0421爱好者
可以添加把路径添加到环境变量path,直接写WinRar
作者: Batcher    时间: 2023-1-9 20:55

回复 4# LJY4.0
  1. if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
  2.     set "path=%path%;C:\Program Files (x86)\WinRAR"
  3. ) else if exist "C:\Program Files\WinRAR\WinRAR.exe" (
  4.     set "path=%path%;C:\Program Files\WinRAR"
  5. )
复制代码





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