【问题标题】:How to copy a file to a remote computer's desktop when the remote computer could be Windows 7 or XP?当远程计算机可能是 Windows 7 或 XP 时,如何将文件复制到远程计算机的桌面?
【发布时间】:2015-02-26 05:20:38
【问题描述】:

我正在尝试创建一个将文件复制到远程用户桌面的脚本。两台计算机将位于同一域中的同一网络上。

到目前为止,我有一个看起来像这样的批处理脚本:

@echo off
set /p user="Username of remote user: "
set /p hostname="Target computer name: "
xcopy [path to local file] "\\%hostname%\c$\Users\%user%\Desktop\"

上面的脚本只适用于 Windows 7。有没有办法让它在复制之前以某种方式检测父文件夹是否存在,然后是否复制?或者这可以通过环境变量来实现吗?

如果我只是让上面的脚本按原样运行并且目标计算机正在使用 Windows XP,那么将创建一个新的目录树,这是我想避免的。

https://support.microsoft.com/kb/65994 在检查本地系统时会起作用,但我正在尝试查看远程计算机的目标文件夹是否存在。我不明白这篇文章是如何回答这个问题的。

【问题讨论】:

  • 1.不要覆盖username 环境变量,甚至暂时不要。 2.在XP,我猜Users文件夹命名为Documents and Settings
  • JosefZ 不错。我实际上在我正在使用的真实脚本中使用了一个不同的变量,只是因为我使用了一个特定于我公司的术语而对其进行了更改。
  • @RobertHarvey 我不认为这个问题与检查文件夹是否存在重复。恕我直言,OP 要求 what-if “远程计算机可能是 Windows 7 或 XP?”而是。
  • @RyanBemrose 如果是我的选择,我会心跳加速。我不需要设置预算,我只是为用户提供支持。

标签: windows batch-file cmd xcopy


【解决方案1】:

始终使用 XP 版本:

xcopy [path to local file] "\\%hostname%\c$\Documents and Settings\%user%\Desktop\"

事实证明,MS 意识到这会发生,并在 Documents and SettingsUsers 之间设置了一个隐藏的连接点。你不能 CD 到它或其中的 DIR,但你仍然可以将它用于任何你想使用 Users 的东西。

【讨论】:

  • 但是请注意,如果系统管理员重新定位了桌面文件夹,这将不起作用。这对于内部使用的代码来说不是问题,这大概是 OP 场景,但商业产品需要更加小心。
猜你喜欢
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2011-11-07
  • 1970-01-01
  • 2013-02-23
  • 2019-01-08
相关资源
最近更新 更多