コマンドラインまたはバッチファイルで隠しファイル/フォルダーを移動する


15

質問

コマンドラインまたはバッチファイルから隠し属性、システム属性、または読み取り専用属性が設定されているファイルやフォルダーを移動する方法を知っている人はいますか?(いいえ、移動後に属性を再設定するために設定された属性を実際に知る方法がないため、最初に属性を除去することはオプションではありません。)


(失敗)試行

  1. 基本moveコマンドの使用は、隠し属性またはシステム属性が設定されたアイテムでは機能せず、何らかの理由で、次のような属性を指定するスイッチがありませんdirdelコマンドのません。

  2. シェルのファイル操作機能を使用するユーティリティを使用してみましたが、使用する必要があります start /w、バッチファイルが先に実行されないようにする、何らかの理由で長いファイル名のサポートについて文句を言います。

  3. を使用してみましたrobocopyが、最初にファイルをコピーしてから、単純に移動する代わりに元のファイルを削除します(過度の出力にリダイレクトもイライラと遅延の結果、ソースnul)。

(驚くべきことに、コマンドラインから隠しファイルを移動する必要があるほとんどないようです。私が見つけたのは、この試みを放棄した1人だけでした。)


4
\tempディレクトリを作成している場合は、ディレクトリの名前を変更/移動するだけで%1\tempどうですか?それとも単純なケースですか?
ケン

それは確かに単純化されたケースです。単に名前を変更しても機能しません。
Synetech

なぜ属性の除去はオプションではないのですか?それが適切な(そして意図された)方法です。
ルーク

>なぜ属性の除去はオプションではないのですか?@Idigas、どのアイテムにどの属性が設定されているかを正確に知り、正しく再設定できるようにしますか?>それはそれを行うための適切な(そして意図された)方法だろう
Synetech

私の無知を許しますが、jamesewelch.com / 2008/05/01 /…のようなものは機能しますか?
キティ博士

回答:


6

GNU for Win32ユーティリティの MV.EXEを使用して、読み取り専用の隠しファイルを正常に移動することができました ターゲットファイルは、読み取り専用の非表示属性を保持します。

パッケージ全体をダウンロードする必要があります。

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


1
悪くない。うまくいきますが、残念ながら、--; で始まるファイルを処理するときに死にます。ファイル名ではなく引数であると考えています。
Synetech

2
悪くない?それでおしまい?それはあなたの要求を解決します。「--filename」の要件について何も見当たらないか、テストしていました。申し訳ありませんが、隠された要件はスポーツではありません。
RobW

はい、悪くありません。それは私が尋ねた基本的な操作のみを行います。有効なWindowsファイル名を処理できない場合、今ではあまり役に立ちませんか?ファイル名を正しく処理することは「隠された」要件ではありません。
Synetech

3
@Synetech、あなただけのファイル名を修飾する必要があります:mv .\--1.txt newdirectory
dangph

4
--fooコマンドライン引数を示すために一般的に使用されるUnixユーティリティ。で始まるファイル名をサポートするために--、それらのほとんどは--コマンドライン引数の終わりとファイル名の始まりを示す特別な引数を受け入れます。mvこれらのコマンドの1つであるかどうかはわかりませんが、そうであれば、次のことができるはずですmv -- --weirdFileName.gotcha betterFileName.txt
ベン

5

私はこれを使ってこれを達成しました:

xcopy /H hidden_file destination_file
del /AH hidden_file

1
質問は、ファイルの移動方法を尋ねます。OPはコピーおよび削除の方法を知っているため、それを行いたくありません。また、彼は隠しファイルを削除する方法をすでに知っていると言います。
スコット

2
スコットは正しいです。コピー元とコピー先のボリュームが同じ場合、最後に行うことは、最初にファイルをコピーして「移動」することです。せいぜい、単一の小さなファイルでは意味がありませんが、大きなファイル、または多くの小さなファイル(多くの大きなファイルは言うまでもなく)では恐ろしいことです(CPUとディスクの負荷が高い)。ディレクトリツリー全体を移動する場合、これはさらに悪化します。ファイルシステムは、ディレクトリエントリポインタを変更することにより、迅速で簡単な移動を既にサポートしています。問題は、隠しファイルでそうすることを防ぐOSインターフェースにあります。
Synetech

結構、それは本当の動きではありません。そして、大きな動きの場合、多くのオーバーヘッドが発生する可能性があります。しかし、OPは実際にコピー+削除が必ずしも悪いことだとは決して言わず、それにもかかわらず、これはコマンドラインから隠しファイルを移動する方法についてのWeb検索のトップヒットの1つであり、私がしなければならないことのために働いた。GNUツールやPowerShellをインストールする代わりに、いくつかの隠しファイルを移動する方法を探している人も使用することを想像します。「移動」コマンドではこれができないのは非常に迷惑です。
ベン

1
質問から:「(失敗)試行 …3.を使用してみましたrobocopyが、ソースを単純に移動するのではなく、最初にファイルをコピーしてから元のファイルを削除します(イライラする遅延が発生します...)
Scott

結構...私はそれを「コピー+削除操作を望まない」の代わりに「robocopyを使いたくない」と読んだと思います。しかし、私はあなたのポイントを見る。
ベン

3

Powershell v2:

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

また、隠しファイルとシステム属性が設定された隠しファイルも移動します。「-」で始まるファイルで動作します。


1
これでうまくいくと確信していますが、PowerShellは通常のコマンドプロンプトに比べて非常に遅いです。いいえ、それは「隠された」要件ではないので、質問でロボコピーの遅延を嫌うことを明確に示しました。(それがどのような方法で私を助けていないので、それはあなたのシステムに高速に動作することを教えないでください。私のシステムでは、それは単に負荷に数秒かかり、さらにはちょうど押しTab、ファイル名を完了することは順序である> 1秒かかります遅くに比べて大きさcmd。あなたは私に新しいシステムを買うために喜んでいる場合を除きので、その後、PSは助けに行くされていません)。
Synetech

さらに簡単なPowerShellソリューション:mv .oldfile .newfile
Jay Sullivan 14

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

明らかに、これはハードリンクが許可される場所の制約内でのみ機能します。これは、ファイルの宛先が同じ物理ディスクの同じパーティションにある必要があることを意味すると思います。しかし、この制約が満たされない場合、とにかくコピー+削除が必要になると確信しています。
ベン

面白いアイデア。もちろん、制限が大きすぎます(Windows 7システムドライブにはNTFSのみを使用し、他のすべてにはFAT32のみを使用します。また、通常はWindows XPを使用します)。たとえば、読み取り専用属性を設定すると、最初に削除しようとしたときに「新しい」ファイルを削除することはできず、代わりに属性が削除されます。ಠ_ఠそしてもちろん、フォルダに対しては機能しません。
Synetech

0

PowerShellとmvコマンドがありました。完全を期すため、そのため、ここでそれを行う方法ですJP SoftwareのTCC / LEその、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個のファイルを移動しました

[C:\ Users \ JdeBP] ren / a:hs --wobble-- --wurble--
C:\ Users \ JdeBP \-wobble---> C:\ Users \ JdeBP \-wurble--
     1ファイルの名前が変更されました

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

[C:\ Users \ JdeBP]

参考文献

  • JPソフトウェア。移動します。コマンド/ TCCヘルプを利用してください。
  • JPソフトウェア。REN。コマンド/ TCCヘルプを利用してください。

私は、小さな無料のプログラムでできることをするために商用ソフトウェアを購入しようとはしていません(そして、いつものように自分で書かなければならないかもしれません)。とにかく、フォルダにどの属性があるかを予測できないため、属性をハードコーディングしましたが、これは良くありません。また、それに触れることで、元のタイムスタンプを失いました。
Synetech 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.