14

Вопрос

Кто-нибудь знает способ перемещения файлов и папок, которые имеют скрытый, системный или доступный только для чтения атрибут, установленный из командной строки или командного файла? (Нет, удаление атрибутов в первую очередь не вариант, так как нет практического способа узнать, какие атрибуты были установлены, чтобы переустановить их после перемещения.)


(Неудачные) попытки

  1. Использование базовой команды move не работает с элементами с установленным скрытым или системным атрибутом, и по некоторым причинам у него нет переключателей для указания атрибутов, как у команд dir и del .

  2. Я попытался использовать утилиту, которую я написал, которая использует функцию работы с файлом оболочки, но для этого нужно использовать start /w чтобы предотвратить запуск командного файла, и он по какой-то причине жалуется на поддержку длинных имен файлов.

  3. Я попытался использовать robocopy , но сначала он копирует файлы, а затем удаляет оригиналы, а не просто перемещает источник (что приводит к расстраивающей задержке, даже если чрезмерный вывод перенаправлен на nul).

(Удивительно, но кажется, что мало кто когда-либо нуждался в перемещении скрытых файлов из командной строки. Все, что я мог найти, был этот человек, который оставил попытку.)

5 ответов5

5

Я был в состоянии успешно перемещать скрытые файлы только для чтения, используя MV.EXE из утилит GNU для Win32. Целевой файл сохраняет скрытые атрибуты только для чтения.

Вам придется скачать весь пакет:

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

3

Я только что сделал это, используя:

xcopy /H hidden_file destination_file
del /AH hidden_file
3

Powershell v2:

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

также перемещает скрытые файлы с установленными скрытыми и системными атрибутами. Будет работать с файлами, начинающимися с '-'.

0

У нас был PowerShell и команда mv . Поэтому, для полноты, вот как это сделать с помощью TCC/LE компании JP Software, чьи команды move и ren имеют опцию /a: которая является общей для многих команд, которые сканируют каталоги на наличие файлов для работы:

[C:\Users\JdeBP]touch /c --wibble--
11/03/2014 20:29:18.868  C:\Users\JdeBP\--wibble--

[C:\Users\JdeBP]attrib +h +s .\--wibble--
___A___________ -> _HSA___________  C:\Users\JdeBP\--wibble--

[C:\Users\JdeBP]move /a:hs --wibble-- --wobble--
C:\Users\JdeBP\--wibble-- -> C:\Users\JdeBP\--wobble--
     1 file moved

[C:\Users\JdeBP]ren /a:hs --wobble-- --wurble--
C:\Users\JdeBP\--wobble-- -> C:\Users\JdeBP\--wurble--
     1 file renamed

C:\Users\JdeBP]dir /a:hs /t /m /k --wurble--
11/03/2014  20:29               0  _HSA___________  --wurble--

[C:\Users\JdeBP]

дальнейшее чтение

  • JP Software. ДВИЖЕНИЕ. Возьмите Command / TCC Help.
  • JP Software. РЕН. Возьмите Command / TCC Help.
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .