【问题标题】:How to use set path correctly in this?如何在此正确使用设置路径?
【发布时间】:2016-08-15 21:24:35
【问题描述】:

我想设置适合不同用户的批处理文件。所以我尝试使批处理文件更容易一些,然后我在批处理文件中使用“设置路径”,运行后,没有任何内容是复制的。请指教

  • 来源: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

【问题讨论】:

  • %path% 已经是一个系统变量。不要覆盖它的值。
  • 事实上,正是因为您正在覆盖%path%,xcopy(这是一个程序,而不是命令)不起作用。
  • 感谢您的回复,即使我将“路径”更改为“源”仍然无法正常工作。请多指教
  • 你误会了。根本不要设置路径。从脚本中删除整行。

标签: batch-file batch-processing


【解决方案1】:

打开命令提示符窗口并在此窗口中执行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的原因我不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2014-07-26
    • 2019-11-25
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多