私の質問やタイトルが悪いかもしれないので、事前に謝罪します。
コマンドを実行したいとします(具体的にはxsdcxx
)良いzsh
:
$ xsdcxx cxx-tree schemas/core/**/*.xsd --output-dir /absolute/path/to/globbed/path
生成されたファイルのディレクトリ構造が.xsd
入力パターンと同じディレクトリにあることを確認します。どうすればいいですか? PowerShellでは非常に簡単です(xsdcxx
すでにその場所にあると仮定PATH
)。
> Get-ChildItem -Recurse -Include '*.xsd' | Foreach { xsdcxx cxx-tree --output-dir $_.Directory.Fullname $_.Fullname }
ベストアンサー1
そうそうzsh
:
for f (schemas/core/**/*.xsd) xsdcxx cxx-tree --output-dir $f:h $f
cshまたはvimのlike$f:h
のヘッダー(dirname)はどこにありますか?$f
$f
を変更して$f:P
取得するに$f:h
は$f:h:P
実際のパスファイルとファイルヘッダーをそれぞれ表します。
一致するものがない場合にエラーを回避するには、ここから(このグローバル拡張が有効になっている場所)schemas/core/**/*.xsd
に変更することをお勧めします。通常のファイル(ソケット、fifo、ディレクトリ、シンボリックリンクなどの他のすべての種類のファイルを除く)のみを含めるか、一般ファイルへのシンボリックリンクも含めます。schemas/core/**/*.xsd(N)
N
nullglob
(N.)
(N-.)
1. これはそのファイルへの標準パスです。realpath()
標準機能と同様、絶対的でシンボリックリンクはありません。可能な選択肢:a
として:A
説明されている修飾子を参照してください。info zsh modifiers