質問: 現在のフォルダー内の位置/ファイル名に応じてファイルを削除する/複数の値を効果的に定義する 現在のフォルダー内の位置に応じていくつかのファイルを効果的に削除するにはどうすればよいですか(編集:または番号でファイルを取得します)。 できれば、通常の.batファイルを使用した解決策が必要です。 問題は、セットイベントに複数の値を定義する方法です(以下のサンプルコードに示すように1つの値だけではありません)。複数のバイト値を定義する代わりに、新しい値はファイル内のファイルの位置を参照する必要がありますフォルダー。 例(下の画像)は、2、11、12、14の位置にあるフォルダー内のファイルを削除します。 :: size is in bytes set "equal.size=20725" for /f "usebackq delims=;" %%a in ('dir /b /a:-d *.*') do if %%~za equ %equal.size% del "%%a" または、次のようにフォルダ内のファイルに名前を付けることもできます。1 2 3 4 5 ... 100複数のファイルを削除し、それらの番号を呼び出して効果的な方法は何ですか? 上記の.batコードをその方向に簡単に拡張/変更できますか? (1つの.batで配列または類似のソリューションを使用していますか?-番号のリストからファイルを削除する方法に関する情報は必要ありません)。
回答: powershellは、このタイプのものに対してははるかに優れており、よりわかりやすくなっています。特定のタイプのファイルのコレクションを作成し、それぞれに番号を割り当てるには、次のコードが機能します。$folder = 'c:\users\keith\screenshots' get-childitem $folder *.png | foreach-object {$i=1}{ [pscustomobject]@{ index = $i++ ; path = $_.fullname } } 次のようなコレクションが作成されます。index path ----- ---- 1 c:\users\keith\screenshots\add user to permissions.png 2 c:\users\keith\screenshots\apply to folders.png 3 c:\users\keith\screenshots\arrangeby.png 4 c:\users\keith\screenshots\attributes - readonly.png 5 c:\users\keith\screenshots\attributes column added.png 6 c:\users\keith\screenshots\attributes column.png 7 c:\users\keith\screenshots\attributes detail.png 8 c:\users\keith\screenshots\background on-off.png 9 c:\users\keith\screenshots\capture.png 10 c:\users\keith\screenshots\command wrapped shortcut.png 11 c:\users\keith\screenshots\context bacground.png 12 c:\users\keith\screenshots\context foreground.png 13 c:\users\keith\screenshots\date column precedence.png 14 c:\users\keith\screenshots\dd-mm-yy.png 15 c:\users\keith\screenshots\deny delete permissions.png 16 c:\users\keith\screenshots\display scaling.png 17 c:\users\keith\screenshots\display.png 18 c:\users\keith\screenshots\downloads foldertyype topview reg settings.png 19 c:\users\keith\screenshots\explorer taskbar thumbnail context menu.png 20 c:\users\keith\screenshots\file type different display.png 21 c:\users\keith\screenshots\folder options 1.png 22 c:\users\keith\screenshots\folder options 2.png 23 c:\users\keith\screenshots\folder properties customize tab.png 24 c:\users\keith\screenshots\foldertypes.png 25 c:\users\keith\screenshots\forumlayoutwrong.png 26 c:\users\keith\screenshots\gps columns added.png 27 c:\users\keith\screenshots\gps columns available.png 28 c:\users\keith\screenshots\hkcr namespace venn diagram.png 29 c:\users\keith\screenshots\idliist_absolute.png 30 c:\users\keith\screenshots\inheritance.png 31 c:\users\keith\screenshots\jumplist customized.png 32 c:\users\keith\screenshots\jumplist default.png 33 c:\users\keith\screenshots\junction warning.png 34 c:\users\keith\screenshots\libraries.png 35 c:\users\keith\screenshots\library.png 36 c:\users\keith\screenshots\location tab.png 37 c:\users\keith\screenshots\mystats.png 38 c:\users\keith\screenshots\ow1.png 39 c:\users\keith\screenshots\ow2.png 40 c:\users\keith\screenshots\ow3.png 41 c:\users\keith\screenshots\permission.png 42 c:\users\keith\screenshots\permissions 1.png 43 c:\users\keith\screenshots\permissions 2.png 44 c:\users\keith\screenshots\permissions 3.png 45 c:\users\keith\screenshots\permissions 4.png 46 c:\users\keith\screenshots\permissions 5.png 47 c:\users\keith\screenshots\quickstop.png 48 c:\users\keith\screenshots\read-only.png 49 c:\users\keith\screenshots\repace permissions.png 50 c:\users\keith\screenshots\replace owner.png 51 c:\users\keith\screenshots\reset folders.png 52 c:\users\keith\screenshots\saulsalitstats.png 53 c:\users\keith\screenshots\screenshot (1).png 54 c:\users\keith\screenshots\screenshot (10).png 55 c:\users\keith\screenshots\screenshot (100).png 56 c:\users\keith\screenshots\screenshot (101).png 57 c:\users\keith\screenshots\screenshot (102).png 58 c:\users\keith\screenshots\screenshot (103).png 59 c:\users\keith\screenshots\screenshot (104).png 60 c:\users\keith\screenshots\screenshot (105).png 61 c:\users\keith\screenshots\screenshot (106).png 62 c:\users\keith\screenshots\screenshot (107).png 63 c:\users\keith\screenshots\screenshot (108).png 64 c:\users\keith\screenshots\screenshot (109).png 65 c:\users\keith\screenshots\screenshot (11).png 66 c:\users\keith\screenshots\screenshot (110).png 67 c:\users\keith\screenshots\screenshot (111).png 68 c:\users\keith\screenshots\screenshot (112).png 69 c:\users\keith\screenshots\screenshot (113).png 70 c:\users\keith\screenshots\screenshot (114).png 71 c:\users\keith\screenshots\screenshot (115).png 72 c:\users\keith\screenshots\screenshot (116).png 73 c:\users\keith\screenshots\screenshot (117).png 74 c:\users\keith\screenshots\screenshot (118).png 75 c:\users\keith\screenshots\screenshot (119).png 76 c:\users\keith\screenshots\screenshot (12).png 77 c:\users\keith\screenshots\screenshot (120).png 78 c:\users\keith\screenshots\screenshot (121).png 79 c:\users\keith\screenshots\screenshot (122).png 80 c:\users\keith\screenshots\screenshot (123).png 81 c:\users\keith\screenshots\screenshot (124).png 82 c:\users\keith\screenshots\screenshot (125).png 83 c:\users\keith\screenshots\screenshot (126).png 84 c:\users\keith\screenshots\screenshot (127).png 85 c:\users\keith\screenshots\screenshot (128).png 86 c:\users\keith\screenshots\screenshot (129).png 87 c:\users\keith\screenshots\screenshot (13).png 88 c:\users\keith\screenshots\screenshot (130).png 89 c:\users\keith\screenshots\screenshot (131).png 90 c:\users\keith\screenshots\screenshot (132).png 91 c:\users\keith\screenshots\screenshot (133).png 92 c:\users\keith\screenshots\screenshot (134).png 93 c:\users\keith\screenshots\screenshot (135).png 94 c:\users\keith\screenshots\screenshot (136).png 95 c:\users\keith\screenshots\screenshot (137).png 96 c:\users\keith\screenshots\screenshot (138).png 97 c:\users\keith\screenshots\screenshot (139).png 98 c:\users\keith\screenshots\screenshot (14).png 99 c:\users\keith\screenshots\screenshot (140).png 100 c:\users\keith\screenshots\screenshot (141).png 101 c:\users\keith\screenshots\screenshot (142).png 102 c:\users\keith\screenshots\screenshot (143).png 103 c:\users\keith\screenshots\screenshot (144).png 104 c:\users\keith\screenshots\screenshot (145).png 105 c:\users\keith\screenshots\screenshot (146).png 106 c:\users\keith\screenshots\screenshot (147).png 107 c:\users\keith\screenshots\screenshot (148).png 108 c:\users\keith\screenshots\screenshot (149).png 109 c:\users\keith\screenshots\screenshot (15).png 110 c:\users\keith\screenshots\screenshot (150).png 111 c:\users\keith\screenshots\screenshot (151).png 112 c:\users\keith\screenshots\screenshot (152).png 113 c:\users\keith\screenshots\screenshot (153).png 114 c:\users\keith\screenshots\screenshot (154).png 115 c:\users\keith\screenshots\screenshot (155).png 116 c:\users\keith\screenshots\screenshot (156).png 117 c:\users\keith\screenshots\screenshot (157).png 118 c:\users\keith\screenshots\screenshot (158).png 119 c:\users\keith\screenshots\screenshot (159).png 120 c:\users\keith\screenshots\screenshot (16).png 121 c:\users\keith\screenshots\screenshot (160).png このコレクションを使用すると、インデックス/位置によってファイルを簡単に選択できます。$filenums = @(2,11,12,14) $folder = 'c:\users\keith\screenshots' get-childitem $folder *.png | foreach-object {$i=1}{ [pscustomobject]@{ index = $i++ ; path = $_.fullname } } | where index -in $filenums これにより、以下の出力が得られます。index path ----- ---- 2 c:\users\keith\screenshots\apply to folders.png 11 c:\users\keith\screenshots\context bacground.png 12 c:\users\keith\screenshots\context foreground.png 14 c:\users\keith\screenshots\dd-mm-yy.png 私たちの目標はファイルの削除なので、これらをremove-itemにパイプすることができます。 「fullname」を「path」にマッピングしたのは、値をremove-itemの-pathパラメータに一致させるためであり、パイプライン入力を受け入れます。次のコードを安全に実行して、適切なファイルが見つかったかどうかをテストできます。存在する場合は、-whatifコマンドレットからremove-itemパラメータを削除します$filenums = @(2,11,12,14) get-childitem $folder *.png | foreach-object {$i=1} { [pscustomobject]@{ index = $i++ ; path = $_.fullname } } | where index -in $filenums | remove-item -whatif