【问题标题】:copy a file from drive F to all folders in C:\program files将文件从驱动器 F 复制到 C:\program files 中的所有文件夹
【发布时间】:2018-06-02 09:09:01
【问题描述】:

我已经阅读了这个网站上的很多东西,但我似乎无法找到我需要的答案.... 重点:

我需要将 1 个文件复制到 C:\program files 目录中的所有文件夹,但是我正在尝试找到一种不需要指定完整路径的方法...举个粗略的例子,我可以

REN F:\source\*.bat *.exe

(或.mp3.jpg.vbs等)

以上命令会将所有*.bat文件重命名为*.exe文件,而不指定路径

所以我正在批量寻找一个类似的命令行来将 1 个特定文件移动到目录中的多个文件夹,而没有特定路径...

我尝试过%~d0\%programfiles%,但似乎没有什么对我有用....

【问题讨论】:

  • 这和 JavaScript 有什么关系?
  • 我没有太多使用 JavaScript,但我知道类似的命令行可以在 vbscript 中使用,就像在批处理文件或 cmd 中一样,我对此的一些研究将我带到了 .JS 但我没有当然...
  • 一般情况下JS(或VBScript)无法访问文件系统或操作系统,这里的环境是什么?
  • 因为%ProgramFiles% 是现代 Windows 操作系统中的受保护位置,您需要能够以管理员身份运行此批处理文件,(这不一定与拥有管理员帐户类型)。如果您真的足够疯狂,想要在该受保护位置内的每个目录上执行此操作,您需要首先确认您的最终用户可以以管理员身份运行此批处理脚本。
  • 这样做的用例是什么?在我的 %ProgramFiles% 目录下有 17,384 个目录。您真的要在每个目录中都放一个文件吗?

标签: javascript batch-file cmd vbscript


【解决方案1】:

我仍然不完全理解这个用例,但这里有一个东西可以将文件复制到用户“程序文件”目录下的每个子目录中。一旦您确定您期望的副本将会完成,请从 Copy-Item cmdlet 中删除 -WhatIf

Get-ChildItem -Directory -Path $Env:ProgramFiles |
    ForEach-Object {
        Copy-Item -Path 'C:\src\t t t.txt' -Destination $_.FullName -WhatIf
    }

如果您必须从 cmd.exe shell 运行它,请将上面的代码放入扩展名为 .ps1 的文件中并运行:

powershell -NoProfile -File copyit.ps1

注意事项:

使用环境变量ProgramFiles 很重要,因为实际的目录名称可能是您不知道的语言。

写入这些目录可能存在权限问题。尝试使用Run as Administrator

是的,当然有 .bat 文件脚本方法可以做到这一点。微软未来的方向是 PowerShell。不妨现在就开始摸索吧。

【讨论】:

  • 请参阅我上面的评论以解释我为什么要使用这种文件...我将在我自己的计算机上使用它来修复损坏,而无需再次重新格式化(我不得不在这种情况下这样做,因为我的备份不可用。)我一定误解了这个网站的意思,并道歉!
  • 我想出了如何以管理员身份运行,但仍然给我拒绝访问错误,附带的 -whatif 提供的代码可以正常工作,但一旦删除,即使提升权限,我也被拒绝访问...跨度>
  • 您采取了哪些步骤来手动将文件复制到这些目录中?
  • 通常我会制作一个批处理文件,xcopy F:\file.exe "C:\program files\Microsoft office" 我想我可以这样做,因为我正在使用它我自己的电脑,我只是希望更简单的一键式完成输入。
  • 使用XCOPY时是否有权限问题?
猜你喜欢
  • 2012-07-12
  • 2012-08-17
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
相关资源
最近更新 更多