Gizli dosyaları / klasörleri komut satırı veya toplu iş dosyasıyla taşıma


15

Soru

Herkes gizli, sistem veya salt okunur özniteliği ayarlanmış dosya ve klasörleri komut satırından veya toplu iş dosyasından taşımanın bir yolunu biliyor mu? (Hayır, önce nitelikleri sıyırmak bir seçenek değildir, çünkü hareketten sonra bunları yeniden ayarlamak için hangi niteliklerin ayarlandığını bilmenin pratik bir yolu yoktur.)


(Başarısızlıkla sonuçlanmış denemeler

  1. Temel movekomutun kullanılması, gizli veya sistem özniteliği ayarlanmış öğelerle çalışmaz ve bazı nedenlerden dolayı, ve komutları gibi öznitelikleri belirtmek için anahtarları yoktur.dirdel

  2. Kabuğun dosya işlem işlevini kullanan yazdığım bir yardımcı programı kullanmayı denedim, ancak start /wtoplu iş dosyasının ileride çalışmasını önlemek için kullanılmasını gerektiriyor ve bir nedenle uzun dosya adı desteğinden şikayet ediyor.

  3. Kullanmayı denedim robocopy, ancak önce dosyaları kopyalar ve ardından kaynağı taşımak yerine orijinalleri siler (aşırı çıkış yönlendirildiğinde bile sinir bozucu bir gecikmeye neden olur nul).

(Şaşırtıcı bir şekilde, gizli dosyaları komut satırından taşımak için çok az insanın ihtiyaç duyduğu görülüyor . Bulabildiğim tek şey bu girişimi terk eden tek kişi oldu.)


4
Eğer oluşturuyorsanız \tempdizini, neden sadece / adlandırmak hareket %1etmek dizini \temp? Yoksa bu sadece basitleştirilmiş durum mu?
Ken

Bu aslında basitleştirilmiş bir durumdur. Basitçe yeniden adlandırmak işe yaramaz.
Şubat'ta Synetech

Bir özelliği sıyırma neden bir seçenek değildir? Bunu yapmanın uygun (ve amaçlanan) yolu budur.
Kale

> Bir özelliği sıyırma neden bir seçenek değildir? @Idigas, doğru bir şekilde yeniden ayarlanabilmeleri için her bir öğede hangi özelliklerin ayarlandığını tam olarak nasıl bilebilirsiniz? > Bunu yapmanın uygun (ve amaçlanan) yolu olurdu Bu hiç de doğru gelmiyor.
Şubat'ta Synetech

Cehaletimi affet ama jamesewelch.com/2008/05/01/… gibi bir şey işe yarar mı?
Dr Kitty

Yanıtlar:


6

GNU for Win32 yardımcı programlarından MV.EXE kullanarak salt okunur, gizli dosyaları başarıyla taşıyabildim . Hedef dosya salt okunur, gizli öznitelikleri korur.

Tüm paketi indirmeniz gerekecek:

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


1
Fena değil. Bu işe yarıyor, maalesef ile başlayan dosyalarla uğraşırken ölüyor --; bunun dosya adı yerine bir argüman olduğunu düşünüyor.
Mart'ta Synetech

2
Fena değil? Bu kadar? İsteğinizi çözer. '--Filename' gereksinimi hakkında hiçbir şey görmüyorum, yoksa test ederdim. Özür dileriz, ancak gizli gereksinimler zayıf spor.
Rob

Evet fena değil. It does sadece İstediğim temel işlemi. Geçerli Windows dosya adlarını işleyemiyorsa, şimdi çok kullanışlı değil mi? Dosya adlarının doğru kullanımı "gizli" bir gereklilik değildir.
Mart'ta Synetech

3
@Synetech, Sadece dosya adını nitelemek zorundasınız:mv .\--1.txt newdirectory
dangph

4
Unix yardımcı programları genel --fooolarak komut satırı bağımsız değişkenlerini belirtmek için kullanılır . İle başlayan dosya adlarını desteklemek için --, çoğu --komut satırı argümanlarının sonunu ve dosya adlarının başlangıcını göstermek için özel bir argümanı kabul eder. mvBu komutlardan biri olup olmadığından emin değilim , ama eğer öyleyse şunları yapabilmelisiniz:mv -- --weirdFileName.gotcha betterFileName.txt
Ben

5

Ben sadece bunu kullanarak başardı:

xcopy /H hidden_file destination_file
del /AH hidden_file

1
Soru, dosyaların nasıl taşınacağını soruyor . OP nasıl kopyalanacağını ve silineceğini bilir ve bunu yapmak istemez. Ayrıca, gizli dosyaları nasıl sileceğini zaten bildiğini söylüyor.
Scott

2
Scott doğrudur; kaynak ve hedef birimler aynıysa, yapmak istediğiniz son şey önce bir dosyayı kopyalayarak “taşımak” tır. En iyi ihtimalle, tek bir küçük dosya ile anlamsızdır, ancak büyük bir dosya veya birçok küçük dosya (birçok büyük dosya olsa da) korkunçtur (yüksek CPU ve disk yükü). Bir dizin ağacının tamamını hareket ettiriyorsanız bu durum daha da kötüleşir. Dosya sistemi, dizin giriş işaretlerini değiştirerek hızlı ve kolay bir hareketi zaten destekler; sorun, gizli dosyalarla bunu yapmayı engelleyen OS arayüzü ile ilgilidir.
Haziran'ta Synetech

Yeterince adil, bu gerçek bir hareket değil. Ve büyük hamleler için çok fazla yük verebilir. Ancak OP, bir kopya + silme işleminin mutlaka kötü bir şey olduğunu söylemedi ve ne olursa olsun, bu, gizli bir dosyayı komut satırından nasıl taşıyacağına dair web aramalarındaki en iyi hitlerden biri ve yapmak zorunda olduğum şey için çalıştı . Sadece birkaç gizli dosyanın nasıl taşınacağını arayan insanların GNU araçlarını veya PowerShell'i yüklemek yerine de kullanabileceğini hayal ediyorum. "Move" komutunun bunu yapamaması çok can sıkıcı.
Ben

1
Şu sorudan: “ (Başarısız) Denemeler … 3. Kullanmayı denedim robocopy, ancak önce sadece dosyaları kopyalayıp ardından kaynağı taşımak yerine orijinalleri siler (bu da sinir bozucu bir gecikmeye neden olur…”. ”
Scott

Yeterince adil ... Sanırım bunu "Kopya + silme işlemi istemiyorum" yerine "Robocopy kullanmak istemiyorum" olarak okudum. Ama ne demek istediğini anlıyorum.
Ben

3

Powershell v2:

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

Ayrıca gizli ve sistem öznitelikleri ayarlanmış gizli dosyaları taşır. '-' ile başlayan dosyalarla çalışır.


1
Bunun işe yarayacağından eminim, ancak PowerShell normal komut istemine kıyasla dayanılmaz derecede yavaş. Ve hayır, bu “gizli” bir gereklilik değil , sorudaki Robocopy'nin gecikmesinden hoşlanmadığımı açıkça belirtmiştim. (Lütfen bana sisteminizde hızlı çalıştığını söyleme, çünkü bu bana hiçbir şekilde yardımcı olmaz. Sistemimde yüklenmesi sadece birkaç saniye sürüyor, hatta sadece Tabbir dosya adını tamamlamak için düğmesine basmak siparişin 1 saniyesini alıyor. yavaş daha büyüklükte cmd. bana yeni bir sistem satın almak istekli olmadıkça So ardından PS yardım gitmiyor).
Synetech

Daha da kolay PowerShell çözümü:mv .oldfile .newfile
Jay Sullivan

0

Buna ne dersin?

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

Açıkçası bu sadece sabit bağlantılara izin verilen sınırlar dahilinde çalışır. Bu dosyanın hedef aynı fiziksel diskin aynı bölümünde olması gerektiği anlamına gelir. Ancak bu kısıtlama karşılanmazsa, başlık altında bir kopya + silme işleminin gerekli olacağından eminim.
Ben

İlginç fikir. Tabii ki çok sınırlı (sadece Windows 7 sistem sürücüsü için NTFS ve diğer her şey için FAT32 kullanıyorum. Ayrıca, genellikle Windows XP kullanıyorum.) Ayrıca farklı öznitelik kombinasyonları ile tutarsız çalışıyor gibi görünüyor. Örneğin, salt okunur özniteliğini ayarlarsanız, "yeni" dosyayı ilk silmeye çalıştığınızda silmenize izin vermez, bunun yerine özniteliği kaldırır. ಠ_ ఠ Ve tabii ki, klasörler için çalışmıyor.
Synetech

0

PowerShell ve mvemir aldık . Bütünlüğü sağlamak için, bu nedenle, burada bunu yapmak nasıl JP Software'in TTK / LE kimin, moveve renkomutlar hem var /a:olan komutların çoğu için ortak seçeneği olduğunu dosyalarının üzerine işletmek için tarama dizinleri:

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

[C: \ Kullanıcılar \ JdeBP] özellik + h + s. \ - wibble--
___A___________ -> _HSA___________ C: \ Kullanıcılar \ JdeBP \ - wibble--

[C: \ Kullanıcılar \ JdeBP] move / a: hs --wibble-- --wobble--
C: \ Kullanıcılar \ JdeBP \ - wibble-- -> C: \ Kullanıcılar \ JdeBP \ - yalpalama--
     1 dosya taşındı

[C: \ Kullanıcılar \ JdeBP] ren / a: hs --wobble-- --wurble--
C: \ Kullanıcılar \ JdeBP \ - yalpalama - -> C: \ Kullanıcılar \ JdeBP \ - wurble--
     1 dosya yeniden adlandırıldı

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

[C: \ Kullanıcılar \ JdeBP]

daha fazla okuma

  • JP Yazılımı. TAŞIN . Komut / TCC Yardımı alın.
  • JP Yazılımı. REN . Komut / TCC Yardımı alın.

Ben küçük, ücretsiz bir program ile ne yapabilirim yapmak için ticari bir yazılım satın almak için değilim (ve ben her zamanki gibi kendim yazmak zorunda sonunda olabilir). Ne olursa olsun, iyi olmayan öznitelikleri sabit kodladınız çünkü bir klasörün hangi özniteliklere sahip olabileceğini tahmin edemezsiniz. Ayrıca, dokunarak orijinal zaman damgasını kaybettiniz.
14'te Synetech
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.