這有什麼做用Perl。您傳遞給dir
的參數不正確。
dir
解釋/
作爲一個選項的開始,除非它的報價,
- 你必須在不應該出現在路中間的空間,
/s
不工作的路徑包含/
和一個文件組件。
此外,除了/s
之外,您可能還需要/b
。
修正:
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');
這是在Windows上嗎?你可能需要反斜槓。 – simbabque
@simbabque是windows,我不能寫反斜槓,cmd中的cygwin工具要求我寫相當於posix的命令時,我能夠使用正斜槓列出rxx文件夾中的所有文件,但是我不能遞歸查找文件,因爲'/ s'參數被解釋爲文件路徑 – PopCorn
將開關置於路徑之前。 – simbabque