如何正确使用设置路径?

时间:2016-08-15 21:24:35

标签: batch-file batch-processing

我想设置批处理文件适合不同的用户。所以我尝试使批处理文件更容易,然后我使用"设置路径"在批处理文件中,运行后,什么都没有复制。请指示

  • 来源:C:\ Users \ basex \ AppData \ Roaming \ Microsoft \ Sticky Notes
  • 目的地:C:\ Users \ basex \ Desktop \ BACKUP \ backup testing

我使用的代码是:

@echo off
Set path=%source%;"C:\Users\basex\"
echo f | xcopy /s /h /y "%source%\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt" "%source%\Desktop\BACKUP\backup testing"

pause

1 个答案:

答案 0 :(得分:2)

打开命令提示符窗口并在此窗口set中执行以列出所有预定义的环境变量。你在列表中看到

  • PATH ...以分号分隔的文件夹列表,以搜索可执行文件和脚本。
  • PATHEXT ...以分号分隔的可执行文件和脚本的文件扩展名列表。

这两个环境变量用于在没有文件扩展名且没有路径的情况下仅在%SystemRoot%\System32\xcopy.exe进入控制台或批处理文件中查找xcopySystemRoot是另一个预定义的环境变量。

通过使用两个文件夹路径覆盖预定义的PATH,Windows命令处理器无法在Windows的系统文件夹中找到xcopy.exe

该列表还包含其他有用的环境变量,如

  • USERNAME ...当前用户帐户的名称。
  • USERPROFILE ...当前用户帐户的个人资料目录的路径。
  • APPDATA ...当前用户帐户的应用程序数据目录的路径。

在命令提示符窗口xcopy /?中运行,以显示此标准Windows控制台应用程序的帮助,该应用程序不是Windows命令处理器cmd.exe的内部命令。

您的任务可以通过一个命令行完成:

@%SystemRoot%\System32\xcopy.exe "%APPDATA%\Microsoft\Sticky Notes\StickyNotes.snt" "%USERPROFILE%\Desktop\Backup\" /H /I /Q /R /Y >nul

此命令行将文件StickyNotes.snt从当前用户的Sticky Notes应用程序数据目录复制到当前用户的桌面目录中的备份目录,并自动创建整个目录结构到备份目录,如果是必要的。

顺便说一句:用户的桌面目录应该只包含我的观点中的快捷方式,即* .lnk文件,而不是文件和文件夹。我建议将备份目录放在用户配置文件目录中,并在桌面上提供此备份目录的快捷方式,以便从Windows桌面轻松访问它。

内部命令copy通常用于复制单个文件,而不是xcopy,但可能有理由使用我不知道的xcopy