として解釈します。 dir
に渡す引数が正しくありません。
dir
それが引用されていますしない限り、あなたがすべきではない路の途中にスペースを持っている、と
/s
はパスでは動作しません
- 、オプションの開始として
/
を解釈/
とファイルコンポーネントの両方を含む。
さらに、/s
に加えて、が必要です。
は修正:言っ
dir "\\server1\dxx\mxx\rxx\ui.xml" /s/b
ので
my $dir_output = `dir "\\\\server1\\dxx\\mxx\\rxx\\ui.xml" /s/b`;
例、
>dir "//localhost/C$/Users/ikegami/Desktop/" /s/b
\\localhost\C$\Users\ikegami\Desktop\a.jpg
\\localhost\C$\Users\ikegami\Desktop\cabinet.txt
...
>dir "//localhost/C$/Users/ikegami/Desktop/a.jpg" /s/b
File Not Found <-- WTF?
>dir "\\localhost\C$\Users\ikegami\Desktop\a.jpg" /s/b
\\localhost\C$\Users\ikegami\Desktop\a.jpg
\\localhost\C$\Users\ikegami\Desktop\x\a.jpg
>dir \\localhost\C$\Users\ikegami\Desktop\a.jpg /s/b
\\localhost\C$\Users\ikegami\Desktop\a.jpg
\\localhost\C$\Users\ikegami\Desktop\x\a.jpg
>type a.pl
print `dir \\\\localhost\\C\$\\Users\\ikegami\\Desktop\\a.jpg /s/b`
>perl a.pl
\\localhost\C$\Users\ikegami\Desktop\a.jpg
\\localhost\C$\Users\ikegami\Desktop\x\a.jpg
は、私が個人的にFile::Find::Ruleを使用すると思います。
use File::Find::Rule qw();
my $qfns =
File::Find::Rule
->name('ui.xml')
->file
->in('//server1/dxx/mxx/rxx');
これはウィンドウにありますか?おそらくバックスラッシュが必要です。 – simbabque
@simbabqueはい窓、私はバックラッシュを書くことができない、cmdのCygwinのツールは、私がコマンドを実行すると、私は 'rxx'フォルダ内のすべてのファイルをリストすることができます'/ s'パラメータがファイルパスとして解釈されるため、再帰的にファイルを見つけることができません。 – PopCorn
パスの前にスイッチを置きます。 – simbabque