【问题标题】:Copy command for folders with \..\ and \= names with .bat files复制带有 \..\ 和 \= 名称的文件夹的命令,带有 .bat 文件
【发布时间】:2016-04-25 02:36:17
【问题描述】:

我在谷歌上到处搜索,似乎没有任何解决方案。 Xcopy,复制,robocopy,通过变量,通配符解析为文字字符串..

copy C:\soulworker\datas\bin\Table\nf2\data12.v   C:\soulworker\datas\=true_english\

for /R C:\soulworker\datas\bin\Table\nf2\English\ %%f in (*.res) do copy %%f  C:\soulworker\datas\bin\Table\nf2\data12.zip\..\bin\Table\

【问题讨论】:

  • .. 不可能成为文件路径的一部分; .. 是一个特殊的目录,它内置在每个目录中,并指向它上面的目录。
  • 不知道为什么我因为提出一个有效的问题而被否决,但它是我提取的 zip 文件目录的一部分。 i.snag.gy/jAIKnO.jpgi.snag.gy/AMxC7O.jpg
  • 那不是解压出来的路径;提取的路径中不会有.zip。您错误地采用了 inside zip 文件的路径。不要那样做。
  • 好吧,我的错,但是绝对没有办法自动执行此操作,因为它是一个无效的文件路径(作为 .bat 文件),除了通过将文件打开为 zip (?) 手动覆盖文件之外。
  • 另外,它不起作用,因为您的 for 循环试图从目录复制文件并将它们放入 zip 文件中。那永远不会奏效。请参阅stackoverflow.com/questions/28043589/… 以创建 zip 文件。

标签: batch-file copy xcopy


【解决方案1】:

=等号在路径或文件名中,读取cmd Syntax: Escape Characters, Delimiters and Quotes

分隔符

分隔符将一个参数与下一个参数分开 - 它们将 将命令行组合成单词。

参数通常由空格分隔,但任何 以下也是有效的分隔符:

  • 逗号 (,)
  • 分号 (;)
  • 等于 (=)
  • 空格 ( )
  • 制表符 ( )

要在文件名或路径名中保留分隔符,请使用双引号,如下所示:

copy C:\soulworker\datas\bin\Table\nf2\data12.v "C:\soulworker\datas\=true_english\"

在使用..加倍句号,阅读Naming Files, Paths, and Namespaces

使用两个连续的句点 (..) 作为路径中的目录组件 表示当前目录的父级。

例如,所有

dir C:\soulworker\datas\bin\Table\nf2\data12.zip\..\bin\Table\
dir C:\soulworker\datas\bin\Table\nf2\data12Xzip\..\bin\Table\
dir C:\soulworker\datas\bin\Table\nf2\foobar.exe\..\bin\Table\
dir C:\soulworker\datas\bin\Table\nf2\foobarABCD\..\bin\Table\    

会解决

dir C:\soulworker\datas\bin\Table\nf2\bin\Table\

即使路径中跳过的目录组件包含不允许的字符,例如*(星号)、?(问号)或:(冒号),请参见下一个示例:

==> dir /B /S c:\windows\foo***...???:::\..\system32\notepad.exe
c:\windows\system32\notepad.exe

==>

\foo***...???::: 路径部分(前面的 \..)根本没有被解析...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多