找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 108|回复: 2

[系统相关] 脚本跳转问题咨询。

[复制链接]
发表于 2026-3-6 13:38:51 | 显示全部楼层 |阅读模式
硕大的新手  以下是跳转脚本 问题是跳转到另外一个smb共享上的脚本的时候有些机型会弹出内存不足的问题,实际物理内存很充裕  跳转脚本文件头我放在下满评论 麻烦大佬看看
  1. @echo off
  2. color 0A
  3. mode con cols=80 lines=25
  4. set "BLUE="
  5. set "GREEN="
  6. set "YELLOW="
  7. set "RED="
  8. set "WHITE="
  9. set "RESET="
  10. cls
  11. echo.
  12. echo.  %BLUE%=============================================%RESET%
  13. echo.  %WHITE%         打印机安装程序启动器            %RESET%
  14. echo.  %BLUE%=============================================%RESET%
  15. echo.
  16. fltmc >nul 2>&1
  17. if %errorlevel% neq 0 (
  18.     echo.  %RED%[X] 错误:未以管理员权限运行%RESET%
  19.     echo.
  20.     echo.  %YELLOW%[!] 请右键点击本脚本,选择"以管理员身份运行"%RESET%
  21.     echo.
  22.     echo.  %BLUE%=============================================%RESET%
  23.     echo.  %WHITE%         3秒后自动关闭窗口...               %RESET%
  24.     echo.  %BLUE%=============================================%RESET%
  25.     timeout /t 3 /nobreak >nul
  26.     exit /b 1
  27. )

  28. echo.  %GREEN%[√] 已以管理员权限运行%RESET%
  29. set "server=192.168.22.1"
  30. set "targetpath=\\%server%\办公系统装机必备软件\打印机\打印机一键"
  31. set "targetfile=%targetpath%\打印机安装1.bat"
  32. set "fixedUser=ce1"
  33. set "fixedPass=Ac2222"

  34. echo.
  35. echo.  %WHITE%[*] 正在检查192.168.15.45访问权限...%RESET%
  36. echo.
  37. dir "%targetpath%" >nul 2>&1
  38. if %errorlevel% equ 0 (
  39.     echo.  %GREEN%[√] 检测到已有访问权限,直接打开安装文件%RESET%
  40.     echo.  %WHITE%[*] 正在打开安装文件...%RESET%
  41.     start "" "%targetfile%"
  42.    
  43.     if %errorlevel% equ 0 (
  44.         echo.
  45.         echo.  %GREEN%[√] 文件已成功打开,请按照安装向导操作%RESET%
  46.     ) else (
  47.         echo.  %RED%[X] 验证通过,但打开文件时发生错误%RESET%
  48.     )
  49.    
  50.     goto :完成操作
  51. )

  52. echo.  %YELLOW%[!] 现有凭据访问失败,尝试使用专用凭据%RESET%
  53. echo.

  54. set "hasExistingCred=0"
  55. cmdkey /list | findstr /i "%server%" >nul 2>&1
  56. if %errorlevel% equ 0 (
  57.     set "hasExistingCred=1"
  58.     echo.  %YELLOW%[!] 检测到已存在%server%的凭据,将临时替换%RESET%
  59.     echo.  %WHITE%[*] 正在备份现有凭据...%RESET%
  60.     cmdkey /export:%server% temp_cred.txt >nul 2>&1
  61. )

  62. echo.
  63. echo.  %WHITE%[*] 正在使用专用凭据连接...%RESET%
  64. net use \\%server% /user:%fixedUser% %fixedPass% >nul 2>&1
  65. if %errorlevel% equ 0 (
  66.     echo.  %GREEN%[√] 专用凭据连接成功%RESET%
  67.     echo.  %WHITE%[*] 正在验证访问权限...%RESET%
  68. ) else (
  69.     echo.  %RED%[X] 专用凭据连接失败,请检查配置%RESET%
  70.    
  71.     if %hasExistingCred% equ 1 (
  72.         echo.  %WHITE%[*] 正在恢复原有凭据...%RESET%
  73.         cmdkey /import:%server% temp_cred.txt >nul 2>&1
  74.         del temp_cred.txt >nul 2>&1
  75.     )
  76.    
  77.     echo.
  78.     pause
  79.     exit /b 1
  80. )

  81. dir "%targetpath%" >nul 2>&1
  82. if %errorlevel% equ 0 (
  83.     echo.  %GREEN%[√] 访问验证成功%RESET%
  84.     echo.  %WHITE%[*] 正在打开安装文件...%RESET%
  85.     start "" "%targetfile%"
  86.    
  87.     if %errorlevel% equ 0 (
  88.         echo.
  89.         echo.  %GREEN%[√] 文件已成功打开,请按照安装向导操作%RESET%
  90.     ) else (
  91.         echo.  %RED%[X] 验证通过,但打开文件时发生错误%RESET%
  92.     )
  93. ) else (
  94.     echo.  %RED%[X] 访问失败,可能是凭据配置错误%RESET%
  95. )

  96. echo.
  97. echo.  %WHITE%[*] 正在断开专用连接...%RESET%
  98. net use \\%server% /delete >nul 2>&1

  99. if %hasExistingCred% equ 1 (
  100.     echo.  %WHITE%[*] 正在恢复原有凭据...%RESET%
  101.     cmdkey /import:%server% temp_cred.txt >nul 2>&1
  102.     del temp_cred.txt >nul 2>&1
  103. )

  104. :完成操作
  105. echo.
  106. echo.  %BLUE%=============================================%RESET%
  107. echo.  %WHITE%           操作已完成,按任意键退出          %RESET%
  108. echo.  %BLUE%=============================================%RESET%
  109. echo.
复制代码
 楼主| 发表于 2026-3-6 13:39:34 | 显示全部楼层
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
title 国金打印机安装助手I  %date%
color F3
mode con cols=90 lines=40
color 0E
echo.
:sc_ch1
发表于 2026-3-6 16:57:04 | 显示全部楼层
回复 1# 1776940473


换个思路试试:
先把 %targetpath%\打印机安装1.bat 复制到本地 %temp% 目录下,然后 start 命令从本地调用。
 楼主| 发表于 4 天前 | 显示全部楼层
回复 3# ShowCode


    你是说直接执行共享路径的脚本和本地路径的脚本不一样是吗,也试过 直接把共享盘下的脚本复制到本地运行就直接闪退
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 19:58 , Processed in 0.019000 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表