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


15

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


(失败)尝试

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

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

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

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


4
如果要创建\temp目录,为什么不只是将%1目录重命名/移动到\temp?还是仅仅是简化的案例?

这确实是一个简化的情况。简单地重命名是行不通的。
Synetech

为什么剥离属性不是一种选择?那将是正确的(和预期的)方法。
Rook 2012年

>为什么不删除属性?@Idigas,您如何确切地知道在每个项目上设置了哪些属性,以便可以正确地重新设置它们?>那将是正确的(和预期的)方法听起来根本不正确。
Synetech

原谅我的无知,但是像jamesewelch.com/2008/05/01/…之类的作品能起作用吗?
Kitty博士2012年

Answers:


6

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

您必须下载整个软件包:

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


1
不错。那行得通,不幸的是,它在处理以--; 开头的文件时死了。它认为这是一个参数而不是文件名。
Synetech 2012年

2
不错?而已?它可以解决您的要求。我看不到有关“ --filename”要求的任何信息,否则我会对此进行测试。道歉,但隐性的要求是运动能力差。
RobW 2012年

是的,还不错。它执行我询问的基本操作。如果它不能处理有效的Windows文件名,那么它不是很有用吗?正确处理文件名不是“隐藏”的要求。
Synetech 2012年

3
@Synetech,您只需限定文件名:mv .\--1.txt newdirectory
dangph 2012年

4
Unix实用程序通常用于--foo表示命令行参数。为了支持以开头的文件名--,它们中的大多数都接受一个特殊的参数--来表示命令行参数的结尾和文件名的开头。我不确定mv这些命令是否是其中之一,但是如果是,那么您应该能够:mv -- --weirdFileName.gotcha betterFileName.txt
2013年

5

我刚刚使用以下命令完成了此操作:

xcopy /H hidden_file destination_file
del /AH hidden_file

1
问题询问如何移动文件。OP知道如何复制和删除,并且不想这样做。另外,他说他已经知道如何删除隐藏文件。
Scott

2
斯科特是正确的;如果源卷和目标卷相同,那么最后要做的就是先复制文件来“移动”文件。充其量,对于一个小文件来说,它是毫无意义的,但是对于一个大文件或许多小文件(更不用说许多大文件),这是可怕的(CPU和磁盘负载很高)。如果要移动整个目录树,则情况会更糟。通过更改目录条目指针,文件系统已经支持快速轻松的移动。问题出在OS界面上,无法使用隐藏文件进行操作。
Synetech

公平地说,这不是一个真正的举动。对于大举动,它可能会带来很多开销。但是OP从未真正说过copy + delete一定是一件坏事,而且无论如何,这是Web搜索中如何从命令行移动隐藏文件的热门选择之一,并且它对于我必须要做的工作有效。我想象人们只是在寻找如何移动一些隐藏文件的人也可能会使用它,而不是安装GNU工具或PowerShell。非常令人讨厌的是,“ move”命令根本无法做到这一点。

1
来自问题:“ (失败)尝试 ……3.我尝试使用robocopy,但它首先复制了文件,然后删除了原始文件,而不是简单地移动源文件(这导致令人沮丧的延迟,……)。”
Scott

相当公平……我想我读的是“我不想使用robocopy”,而不是“我不想执行复制+删除操作”。但我明白你的意思。

3

Powershell v2:

move-item -force   '--1.txt' newdirectory

还移动设置了隐藏属性和系统属性的隐藏文件。适用于以“-”开头的文件。


1
我敢肯定这是可行的,但是与正常的命令提示符相比,PowerShell的运行速度实在是太慢了。不,这不是 “隐藏”的要求,我明确表示我不喜欢Robocopy在该问题上的延迟。(请不要告诉我它可以在您的系统上快速运行,因为这对我没有任何帮助。在我的系统上,加载仅需要几秒钟,甚至只需按Tab一个完整的文件名也要花费> 1秒的时间大小比慢的cmd。所以,除非你愿意给我买一个新的系统,那么PS是不会帮助)。
Synetech

甚至更简单的PowerShell解决方案:mv .oldfile .newfile
Jay Sullivan 2014年

0

这个怎么样?

C:\Temp>attrib hidden.txt
A   H        C:\temp\hidden.txt

C:\Temp>mklink /H renamed.txt hidden.txt
Hardlink created for renamed.txt <<===>> hidden.txt

C:\Temp>del /AH hidden.txt

C:\Temp>attrib renamed.txt
A   H        C:\temp\renamed.txt

显然,这仅在允许硬链接的限制内起作用。我认为这意味着文件的目的地必须在同一物理磁盘的同一分区上。但是,如果不满足此约束条件,我非常确定无论如何都需要复制+删除。
2013年

有趣的主意。当然,它太有限了(我只将NTFS用于Windows 7系统驱动器,而将FAT32用于其他所有功能。此外,我通常使用Windows XP。)它似乎在不同的属性组合下工作不一致。例如,如果您设置了只读属性,则不允许您在首次尝试删除“新”文件时将其删除,而是剥离该属性。ಠ_ఠ当然,它不适用于文件夹。
Synetech

0

我们有PowerShell和mv命令。因此,为了完整起见,以下是使用JP Software的TCC / LE进行操作的方法,其moveren命令都具有/a:其许多扫描目录的命令所共有的选项:

[C:\ Users \ JdeBP]触摸/ c-摆动-
11/03/2014 20:29:18.868 C:\ Users \ JdeBP \-摆动-

[C:\ Users \ JdeBP] attrib + h + s。\-摆动-
___A___________-> _HSA___________ C:\ Users \ JdeBP \-摆动-

[C:\ Users \ JdeBP]移动/ a:hs-摆动--摆动-
C:\ Users \ JdeBP \-摆动--> C:\ Users \ JdeBP \-摆动-
     已移动1个文件

[C:\ Users \ JdeBP] ren / a:hs --wobble-- --wurble--
C:\ Users \ JdeBP \-摆动--> C:\ Users \ JdeBP \-摆动-
     1个文件已重命名

C:\ Users \ JdeBP] dir / a:hs / t / m / k --wurble--
2014年11月3日20:29 0 _HSA___________-糟糕-

[C:\ Users \ JdeBP]

进一步阅读

  • JP软件。移动。采取命令/ TCC帮助。
  • JP软件。。采取命令/ TCC帮助。

我暂时不会购买商业软件来完成我应该通过小型免费程序执行的工作(而且我很可能最终不得不像往常一样自己编写)。无论如何,您都对属性进行了硬编码,这是不好的,因为您无法预测文件夹可能具有的属性。另外,触摸它会丢失其原始时间戳。
Synetech
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.