首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络路径上的批处理文件

网络路径上的批处理文件
EN

Stack Overflow用户
提问于 2015-04-23 10:34:12
回答 1查看 92关注 0票数 1

我有下面的批处理脚本,以使工作更轻松。

以下是它应该发挥的作用:

1-将一些文件拖放到.bat上

2-在“菜单”上选择文件的目的地

3-脚本复制的文件到目标文件夹

脚本执行远程过程(这是PSexec行)

5-脚本复制是远程过程到其他文件夹的结果。

这个很好..。除了一个“小”细节,我需要一些帮助。

当我试图复制网络位置\10.250.39.116\d%.如果我以前没有登录到那台机器,它就不能工作了。

我一直在研究“网络使用”命令来克服这个问题,但我不确定它是否适合我的需要。

我需要对4台不同的机器进行身份验证,这取决于菜单的选择。

实际问题:

我是否可以使用批处理登录到这样的机器,并避免每次运行脚本时创建重复连接?如果是这样的话,是怎么做的?

谢谢你抽出时间!:)

我知道我指向同一个地方的道路:)

代码语言:javascript
复制
@echo off

setlocal enabledelayedexpansion



ECHO.
ECHO ...............................................
ECHO PRESS 1, 2 OR 3 to select your task, or 4 to EXIT.
ECHO ...............................................
ECHO.
ECHO 1 - Compilar em Qualidade
ECHO 2 - Compilar na HSDEV
ECHO 3 - Compilar nas DEMOS
ECHO 4 - EXIT
ECHO.
SET /P M=Type 1, 2, 3, or 4 then press ENTER:
IF %M%==1 GOTO :QUAL
IF %M%==2 GOTO :HSDEV
IF %M%==3 GOTO :DEMO
IF %M%==4 GOTO EOF


:QUAL
set "PathForms6=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb6i\GH\"
set "PathForms10=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb10\GH\"
set PathCompilador=\\10.250.39.116 -u Administrator -p Password1 cmd "/C d: & cd d:\GLINTTHSIAS\GLINTTHS\compilador & GH_PRIV_10_02_Forms.bat"
set PathDestinoPriv=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PRIV\GH
set PathDestinoPub=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PUB\GH
goto :PROCESSA
goto EOF


:HSDEV
set "PathForms6=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb6i\GH\"
set "PathForms10=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb10\GH\"
set PathCompilador=\\10.250.39.116 -u Administrator -p Password1 cmd "/C d: & cd d:\GLINTTHSIAS\GLINTTHS\compilador & GH_PRIV_10_02_Forms.bat"
set PathDestinoPriv=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PRIV\GH
set PathDestinoPub=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PUB\GH
goto :PROCESSA
goto EOF

:DEMO
set "PathForms6=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb6i\GH\"
set "PathForms10=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\compilador\fmb10\GH\"
set PathCompilador=\\10.250.39.116 -u Administrator -p Password1 cmd "/C d: & cd d:\GLINTTHSIAS\GLINTTHS\compilador & GH_PRIV_10_02_Forms.bat"
set PathDestinoPriv=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PRIV\GH
set PathDestinoPub=\\10.250.39.116\d$\GLINTTHSIAS\GLINTTHS\PUB\GH
goto :PROCESSA
goto EOF



:PROCESSA
set argCount=0
for %%x in (%*) do (
   set /A argCount+=1
   set "argVec[!argCount!]=%%~nx"
   set "pathVec[!argCount!]=%%~dpx"

)


rem echo Number of processed arguments: %argCount%


for /L %%i in (1,1,%argCount%) do (

    echo Vou compilar %%i - "!argVec[%%i]!"

if exist %PathForms6%!argVec[%%i]!.* del /q %PathForms6%!argVec[%%i]!.*
if exist %PathForms10%!argVec[%%i]!.* del /q %PathForms10%!argVec[%%i]!.*

robocopy "!pathVec[%%i]!." %PathForms6% !argVec[%%i]!.fmb > nul

) 

c:
cd  c:\pstools
psexec %PathCompilador%


 for /L %%i in (1,1,%argCount%) do (

if exist "%PathForms10%!argVec[%%i]!.fmx" (
 xcopy  %PathForms10%!argVec[%%i]!.fmx %PathDestinoPriv% /y
 xcopy  %PathForms10%!argVec[%%i]!.fmx %PathDestinoPub% /y)
 )

pause
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-23 12:33:29

您对net use做了多少测试?尝试在命令行中运行两次。注意在第二次运行时输出是如何变化的:

如您所见,在已经建立连接的地方,net use将输出连接的摘要,而不是创建重复的连接。

如果您愿意,可以使用条件执行或错误级别检查。使用此方法,您可以避免在net use失败之前调用xcopy,这应该是第一次。下面是一个简短的例子,简单地说明一下这个机制:

代码语言:javascript
复制
@echo off
setlocal

ping -n 1 10.250.39.116 | find /i "TTL=" >NUL || (
    echo 10.250.39.116 is offline.  Unable to continue.  Press any key to exit.
    pause >NUL
    goto :EOF
)

call :xcopy "%~1" "destination"

echo Press any key to exit.
pause >NUL
net use \\10.250.39.116\d$ /delete >NUL 2>NUL
goto :EOF

:xcopy <source> <dest_dir>
xcopy /L "%~1" "%~2" 2>NUL || (
    net use \\10.250.39.116\d$ /user:username password >NUL 2>NUL
    xcopy /L "%~1" "%~2"
)
goto :EOF
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29820867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档