2014-03-19 35 views
2

我在Windows中使用批處理文件通過SSH與plink連接到Linux計算機,以查看兩個特定文件是否是最新的(他們必須有今天的日期)。通過plink連接並重定向到文件,沒有獲得文件中所有需要的輸出

我在Windows批處理文件中使用執行砰砰的命令:

plink.exe -ssh [email protected]%THEIP% -m checkfiles.txt > temp\fileDates.txt 

的 「checkfiles.txt」 在Windows計算機包含:

ls -l /folder/*file.dat.v* /folder/*file2.dat.v* > awk '{print $7}' 

我再繼續閱讀「文件日期.txt「來查看這兩個文件是否存在以及它們的日期。

我可以刪除> awk'{print $ 7}'部分並在批處理文件上手動執行。

問題是當一個文件丟失,我得到例如:

ls: cannot access /folder/*file.dat.v*: No such file or directory 

我得到的屏幕,按摩,而不是在「fileDates.txt」,我只得到了日期爲第二個文件,沒有找到第一個文件的錯誤。

我想在「fileDates.txt」中有錯誤「沒有這樣的文件...」,所以我一直在嘗試不同的重定向方法無濟於事。

如果這是不可能的,我怎麼能告訴當一個文件,其他或兩者都失蹤?

預先感謝您。

回答

0

我找到了答案。感謝@PlasmaPower爲您提供幫助(我會盡快給您答覆,但我沒有足夠的聲望)。

需要的是兩行代碼:

ls -l /folder/*file.dat.v* /folder/*file2.dat.v* &> $HOME/checkfiles.txt 
cat $HOME/checkfiles.txt | awk '{print $7}' 

的第一個這樣做既輸出和錯誤的臨時文件,然後另一行做AWK命令。

非常感謝!

1

您可以使用2>捕捉到的錯誤消息:

ls -l /folder/*file.dat.v* /folder/*file2.dat.v* > awk '{print $7}' 2> sed '"s|ls: cannot access .*|No such file $name_of_variable_with_file_you_want_to_access|" 
+0

嗨!感謝您的快速回復! --- temp \ fileDates.txt仍然沒有得到2>部分 --- 我真的不明白你爲什麼在那裏放置一個變量。 – heffeque

+1

正在編寫的文件在Windows中,而不是在Linux中。 Linux不會「看到」文件。 > 2必須發送到plink,然後plink(在Windows機器中)將它發送到文件(在Windows中)。 --- 我在找的是temp \ fileDates.txt中有這個: 'ls:無法訪問/folder/*file.dat.v*:沒有這樣的文件或目錄 20'' – heffeque

相關問題