使用命令行或批处理文件移动隐藏文件/文件夹

Syn*_*ech 15 windows file-transfer command-line batch-file

有谁知道移动具有从命令行或批处理文件设置的隐藏、系统或只读属性的文件和文件夹的方法吗?(不,首先剥离属性不是一个选项,因为没有实用的方法来知道设置了哪些属性以便在移动后重新设置它们。)


(失败)尝试

  1. 使用基本move命令不适用于设置了隐藏或系统属性的项目,并且由于某种原因,它没有diranddel命令那样指定属性的开关

  2. 我尝试使用我编写的使用 shell 的文件操作功能的实用程序,但这需要使用start /w来防止批处理文件提前运行,并且由于某种原因它抱怨长文件名支持。

  3. 我尝试使用robocopy,但它首先复制文件,然后删除原始文件,而不是简单地移动源(这会导致令人沮丧的延迟,即使将过多的输出重定向到nul)。

(令人惊讶的是,似乎很少有人需要从命令行移动隐藏文件。我所能找到的就是这个放弃尝试的人。)

Rob*_*obW 6

我已经能够使用来自GNU for Win32 实用程序的MV.EXE 成功地移动只读的隐藏文件 目标文件保留只读的隐藏属性。

您必须下载整个软件包:

http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php

  • @Synetech,您只需要限定文件名:`mv .\--1.txt newdirectory` (4认同)
  • Unix 实用程序通常使用 `--foo` 来表示命令行参数。为了支持以 `--` 开头的文件名,它们中的大多数都接受一个特殊的参数 `--` 来表示命令行参数的结尾和文件名的开头。我不确定 `mv` 是否是这些命令之一,但如果是,那么您应该能够:`mv -- --weirdFileName.gotcha betterFileName.txt` (4认同)
  • 不错?就是这样?它解决了您的要求。我没有看到有关“--filename”要求的任何信息,否则我会对其进行测试。抱歉,但隐藏的要求是糟糕的运动。 (2认同)

Ben*_*Ben 5

我刚刚使用以下方法完成了此操作:

xcopy /H hidden_file destination_file
del /AH hidden_file
Run Code Online (Sandbox Code Playgroud)

  • 斯科特是对的;如果源卷和目标卷相同,那么您最不想做的就是通过先复制来“移动”文件。充其量,单个小文件毫无意义,但是对于一个大文件,或许多小文件(更不用说许多大文件),它是可怕的(高 CPU 和磁盘负载)。如果您要移动整个目录树,情况就会变得更糟。文件系统已经支持通过更改目录项指针来快速轻松地移动;问题出在操作系统界面上,它阻止了使用隐藏文件这样做。 (3认同)