ディレクトリ内のすべてのファイル(可能であればサブディレクトリも含む)でコマンドを実行するコマンドラインループ


14

これはかなり簡単だと思いますが、Windowsのコマンドラインユーティリティの経験はゼロです。基本的に、ディレクトリ内のすべてのファイルを反復処理する必要があります(サブディレクトリを実行できる場合は素晴らしいですが、必要に応じて5つのディレクトリのそれぞれで実行できます)。変数として名前を取得し、実行します

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

私が見たループのプロンプトのコマンドで動的に名前のファイルを。私はそれを使用できますか(上記のコマンドでSETを交換します)?問題のコンピューターのスペースは限られているため、この段階でこれを実行する前にバックアップを実行することはできません(悪いことはわかっています)。


ロバート、あなたがあなた自身の質問に答えることができたなら、あなた自身の答えを追加して、それを正しいものとして受け入れてください。
ジュリアンナイト

私はそれがあなたが望むものとはまったく思いません、それの終わり("%%f" "%%f")はファイル名を(完全修飾パスで)2回置くだけです。おそらく"%%f" "%%~dpnf.gif"、出力ファイルの拡張子を変更するようなものを使用したいでしょう。
Synetech

@JulianKnight-おかげで、私は実際に戻ったときに試みましたが、そうするために強制的な待機があったと思います。それ以来、質問を忘れていました。
ロバート

回答:



5

PowerShellを開く

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItemは、現在のサブディレクトリからオブジェクトとしてファイルのリストを取得します。「-recurse」にはサブディレクトリが含まれます。これにより、配列$ Filesに配置されます。

foreachループは各ファイルを循環し、各ファイルへの完全なファイル名パスのコマンドライン引数でメモ帳を呼び出します。

注意:ファイルごとにメモ帳のインスタンスを開くため、いくつかの小さなテキストファイルがあるディレクトリで上記のコードをテストします。

それはあなたがあなたが何をしたいのかについて行く方法のアイデアを与えるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.