我的目标是创建一个批处理脚本,以使用覆盖选项将具有子文件夹的文件夹复制到用户桌面,并最小化命令提示符。
我正在通过“用户启动”屏幕中的“组策略”推送脚本。
但是,在本地运行脚本时出现错误。不确定我在脚本中缺少什么。
@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
答案 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