• 締切済み

Get-ChildItem出力からFullName

steed1998の回答

  • steed1998
  • ベストアンサー率77% (14/18)
回答No.2

Get-ChildItem -Recurse |%{$_.Fullname} か Get-ChildItem -Recurse |Select-Object FullName とすればよいかと

関連するQ&A

  • WPS3.0でのGet-childitemの挙動

    先日、Windows power shell 3.0をインストールし、バージョン2.0で利用していたスクリプトを実行したところ以前と挙動が変わり、目的の処理ができなくなってしまいました。 具体的には、カギ括弧"[]"が含まれるパスを対象に-Recurse付きでGet-childitemを実行した場合です。 例: > Get-ChildItem -LiteralPath 'E:\Test\[15-4]' -Recurse Get-ChildItem : 指定されたワイルドカード パターンは無効です: [15-4] 発生場所 行:1 文字:1 + Get-ChildItem -LiteralPath 'E:\Test\[15-4]' -Recurse + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-ChildItem], WildcardPatternException + FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.GetChildItemCommand カギ括弧がワイルドカードとしてチェックが行われ、5以上4以下が指定されているのはおかしい、と言うエラーメッセージが出ているのだと思われます。 powershell.exe -version 2を実行して、環境をWindows power shell 2.0に切り替えてから同一のスクリプトを実行するとワイルドカード扱いとならず、期待通りの動作となります。 > Get-ChildItem -LiteralPath 'E:\Test\[15-4]' -Recurse ディレクトリ: E:\Test\[15-4] Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/09/13 20:02 a ディレクトリ: E:\Test\[15-4]\a Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/09/13 19:51 aa Windows power shell 3.0環境でも、次のケースではエラーになりません。 -Recurseが無い場合: Get-ChildItem -LiteralPath 'E:\Test\[15-4]' ディレクトリ: E:\Test\[15-4] Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/09/13 20:02 a -Recurseは有るが、カギ括弧の中の"-"直前・直後が前<後となっている場合: Get-ChildItem -LiteralPath 'E:\Test\[15-6]' -Recurse ディレクトリ: E:\Test\[15-6] Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/09/13 20:03 c ディレクトリ: E:\Test\[15-6]\c Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/09/13 19:51 cc 行いたいことは、下位フォルダを持っている(かもしれない)数十から数百のフォルダに対して、中身(フォルダ中のフォルダ数、.docなど特定種類のファイルの存在、下階層にフォルダしかない等)を判断し、フォルダの条件ごとに適切な場所にフォルダを移動、不要なものを削除する事です。 フォルダ名は変更できず、スクリプトも既に組んでいるので大きな変更を加えずに済むと助かります。 優先順に次の事柄を教えて頂けると助かります。 1.Windows power shell 3.0で”[15-4]”のような文字列を含むフォルダの下位階層のオブジェクトを取得する方法。 2.上記が困難な場合、Windows power shell 3.0をアンインストールせずに、デフォルトの実行環境をWindows power shell 2.0環境に固定する方法。 3.Windows power shell 3.0で上手くいかない理由。(バグ?、仕様変更?、本来の仕様に修正?) よろしくお願いします。

  • ファイル名が8文字のものを削除

    powershellで get-childitem . -include ????????.jpg -recurse とすれば、ファイル名が8文字のものを抽出できると教わったのですが、これを削除したいです。どうすればいいですか? powershell について調べたら、削除する方法もあるみたいですが、難しくて、私の頭では理解できそうにありません。理解できたとしても、何日もかかりそうです。お願いします。

  • フォルダのアクセス権のみを取得する方法

    WindowsのPowerShellでフォルダのアクセス権を取得したいです。 WindowsServerの以下のコマンドでNTFSのアクセス権、サブディレクトリのNTFSのアクセス権、オーナーが誰か取得する方法は分かりました。 PS > Get-ChildItem 取得したいフォルダ\ -Recurse | Get-ACL | Format-Table -AutoSize -Wrap | Out-File フォルダ名\ファイル名.txt -Encoding Default これだとファイルのアクセス権なども取得出来てしまうのですが、ファイルのアクセス権は不要です。 ディレクトリとサブディレクトリのアクセス権とオーナーが誰かだけ取得したいのですが、方法はありますでしょうか? 宜しくお願いします。

  • powershell コマンドレッドの構文

    こんにちは。Powershellを勉強しようとしているものです。 Get-Help関数を使ってGet-ChildItemを引いたところ、構文が表示されました。 この構文の意味がわかりません、どのような意味になるかお教え頂けないでしょうか? まず[ ]は省略可能ということでしょうか? <string>はストリング型のパラメーター値を受け付けるということでしょうか? その場合、<string[]>はどういう意味になるでしょうか? どうぞ、宜しくお願いします。 >Get-Help Get-ChildItem 構文 Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]

  • PowerShellでフォルダのアクセス権の取得

    WindowsのPowerShellでフォルダのアクセス権を取得したいです。 以下のコマンドでNTFSのアクセス権、サブディレクトリのNTFSのアクセス権、オーナーが誰か取得する方法は分かりました。 PS > Get-ChildItem 取得したいフォルダ\ -Recurse | Get-ACL | Format-Table -AutoSize -Wrap | Out-File フォルダ名\ファイル名.txt -Encoding Default 本題ですが、NTFSのアクセス権だけでなく、フォルダの共有アクセス権も同時に取得したいのです。それは可能でしょうか? サブディレクトリの共有アクセス権も取得したいです。また、オーナーが誰かも取得したいです。 ご教示頂けますと幸いです。宜しくお願いします。

  • PowerShellについて

    PowerShellについて 以下の構文ですが、これは、Cドライブ配下のフォルダを取得し、 アクセス権を取得しCSVに吐き出す処理のようですが、このCSVは どこにはきだされるのでしょうか? ? Cドライブで実行してみましたが、何もファイルが作られていないようです。 Get-ChildItem c:\ -Recurse | Get-ACL |Export-Csv c:ACL-List.csv

  • PowerShell ファイル連結&出力方法

    PowerShellについてお教え下さい。Cドライブ直下に100のCSVファイルがあります。ヘッダーがある為、全CSVファイルの2行目以降を連結させて1ファイルを作りたいと思っています。 そこで下記のようなスクリプトを書きました。 Get-ChildItem $path | % {Get-Content $_ | Select-Object -Skip 1} > xxx.csv しかし、xxx.csvにデータは出力されるのですが、ループ状態に陥ってしまいファイル容量がどんどん増えていってしまいます。これを解決するにはどのようにしたらよいでしょうか? よろしくお願いします。

  • powershellでフォルダ情報を取得したい

    ■前提・実現したいこと powershellで、カレントフォルダ配下にある多数のフォルダに対し、 フォルダ名、最終更新日時、フォルダ内のjpgファイルの個数、フォルダ内のpngファイルの個数 をカンマ区切りのcsv形式でファイルに保存したいです。 ■試したこと 以下のコマンドで、ファイル名、最終更新日は取得することができました。 Get-ChildItem | Sort-Object Name | Select-Object Name, LastWriteTime | convertTo-csv -delimiter "`t" | Select -Skip 2 | Out-File ../out.txt -encoding Default 1つずつのフォルダに対して以下のコマンドでjpgファイルの個数が取得できるようです。 (Get-ChildItem . | Where-Object { $_.Extension -eq ".jpg" }).Count 最初のコマンドにうまく合わせることで、1コマンドで取得できるようにしたいのですが、 どうすればよいのか分からず、教えていただけないでしょうか。

  • PowerShellでTXTを1行ごと読込んで処理

    PowerShellでの処理で教えてください。 C:\list\loglist.txtというファイルに、 C:\Documents and Settings\mama\My Documents\Shell\log C:\share\LOGS C:\diaglog というように、ログフォルダまでのパスが書いてあるファイルがあり、この中身は、時々変更されます。 このテキストを1行ずつ読み込みながら、各フォルダの配下にあるサブフォルダを含めたフォルダ内に、.logというファイルがあり、そのファイルサイズが0でなければ、ファイルを別フォルダへコピーして、元のファイルは削除するということを行いたいのです。 そこで、下記のようなスクリプトを書いてみましたが、エラーとなってしまいます。 $day = Get-Date -format yyyyMMdd $LOGPATH = "C:\list\loglist.txt" $txt = Get-Content $LOGPATH $sr = New-Object System.IO.StreamReader($txt, [System.Text.Encoding]::UTF8) while (($line = $sr.ReadLine()) -ne $null) { #0じゃないログを取得 $fname = Get-ChildItem -path $ff -Recurse | Where-Object {$_.Length -gt 0} # ログをバックアップフォルダへコピーしてリネーム     ・     ・     ・     ・ この#0じゃないログを取得にまで至らず、エラーがでます。 エラーは New-Object : "2" 個の引数を指定して ".ctor" を呼び出し中に例外が発生しました: "指定されたパスのフォーマットはサポートされていません。" 発生場所 行:×× 文字:×× + $sr = New-Object <<<< System.IO.StreamReader($txt, [System.Text.Encoding]::UTF8) + CategoryInfo : InvalidOperation: (:) [New-Object]、MethodInvocationException + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand [System.Object[]] に 'ReadLine' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。 発生場所 行:×× 文字:×× + while (($line = $sr.ReadLine <<<< ()) -ne $null) + CategoryInfo : InvalidOperation: (ReadLine:String) []、RuntimeException + FullyQualifiedErrorId : MethodNotFound パスを呼び出す元になっている『C:\list\loglist.txt』は、他の担当者が作成したものですが、パスの最後に\を入れても変わりませんでした。 PowerShellISEで、$line だけを実行すると、パスはテキストの1行目のC:\Documents and Settings\mama\My Documents\Shell\logが取得できています。 コードはhttp://codezine.jp/article/detail/3592?p=2を参考に作ってみたのですが、まだまだ初心者のためどこを修正すればいいのかわからず途方にくれています。 コードの修正か、もしくは、もっと別な方法などありましたら、ご教授をお願いします。

  • Get-Aclコマンド(PowerShell)

    Get-AclコマンドでCドライブの中にあるフォルダのアクセス権を 表示させようとしていますが、なぜかうまくいきません。 手順としてCドライブのフォルダ確認 PS C:\> dir ディレクトリ: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- da--- 2011/03/31 15:37 APSETUP d---- 2011/12/30 20:50 Fujitsu d---- 2011/03/31 15:52 Intel d---- 2009/07/14 12:20 PerfLogs d-r-- 2014/09/12 20:15 Program Files d-r-- 2014/09/12 20:15 Program Files (x86) d---- 2014/01/18 15:57 temp d---- 2011/12/30 20:26 Users d---- 2014/04/30 23:39 Windows d---- 2013/10/06 7:17 マイフォト -a--- 2012/08/31 21:40 1024 .rnd $testaclという変数を作り、get-childItemとget-aclの結果を格納する。 PS C:\> $testacl = Get-ChildItem | Get-Acl .Accessプロパティでアクセス権の詳細を表示 PS C:\> $testacl.access しかし、なにも表示されず・・・・・・ なにが悪いのでしょう?? ちなみに、testacl.accessをexport-csvを使ってCSVに出力してみたところ 何もない空のファイルでした。 エラーはなにもでていないのに・・・ どなたかご教授ねがいます。