批处理脚本可将文件夹从服务器复制到网络中的用户桌面

时间:2019-01-09 08:27:02

标签: batch-file scripting

我的目标是创建一个批处理脚本,以使用覆盖选项将具有子文件夹的文件夹复制到用户桌面,并最小化命令提示符。

我正在通过“用户启动”屏幕中的“组策略”推送脚本。

但是,在本地运行脚本时出现错误。不确定我在脚本中缺少什么。

@echo off
@cls

if not "%minimized%"=="" goto :minimized

set minimized=true

start /min cmd /C "%~dpnx0"

goto :EOF

:minimized
echo Your Source Path:

set INPUT1=\\X.X.X.X\Test\TMS\
echo Your Destination Path:
set INPUT2=C:\Users\%Username%\Desktop\

xcopy %INPUT1% %INPUT2% /y /s

:minimized

1 个答案:

答案 0 :(得分:0)

您提到了文件夹,因此我在编写此示例时是假设您要创建包含桌面内容的TMS文件夹。

我会在最小化标签内尝试类似的方法。由于我没有要测试的网络驱动器,因此未经测试。

for /f "tokens=2" %i in ('net use * "\\X.X.X.X\Test\TMS\" ^| findstr /i Drive') do set "tmpDr=%%i"
  mkdir  "%USERPROFILE%\Desktop\TMS" >nul
  xcopy "%tmpDir%\*" "%USERPROFILE%\Desktop\TMS" /s /y
  net use /d %tmpDir% >nul

代码中需要注意的一些事情。您有2个minimized标签,需要用双引号将路径变量括起来以消除可能的空格,您可以在计划以最小的方式运行脚本时删除echo的外观。最后但并非最不重要的一点是,您不需要指定用户桌面的完整路径,因为%USERPROFILE%变量已经以Drive:\Users\Username

的形式存在