我想设置批处理文件适合不同的用户。所以我尝试使批处理文件更容易,然后我使用"设置路径"在批处理文件中,运行后,什么都没有复制。请指示
我使用的代码是:
@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
答案 0 :(得分:2)
打开命令提示符窗口并在此窗口set
中执行以列出所有预定义的环境变量。你在列表中看到
PATH
...以分号分隔的文件夹列表,以搜索可执行文件和脚本。PATHEXT
...以分号分隔的可执行文件和脚本的文件扩展名列表。这两个环境变量用于在没有文件扩展名且没有路径的情况下仅在%SystemRoot%\System32\xcopy.exe
进入控制台或批处理文件中查找xcopy
。 SystemRoot
是另一个预定义的环境变量。
通过使用两个文件夹路径覆盖预定义的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
。