腳本判斷文件是否存在
Ⅰ wincc中用vbs寫腳本If Dir("C:\"&filename&".xls")=""Then 不管有無文件if都成立
在WinCC中使用VBS編寫腳本時,遇到了一個問題,即使用If Dir("C:\" & filename & ".xls") = "" Then判斷文件是否存在時,即使文件存在,if條件依然為真。這表明腳本中的邏輯可能存在問題。進一步檢查代碼發現,腳本中的field.setAccessible(true)和field.get(obj)用於訪問和獲取對象的欄位值,而toBeQueue.add(fieldValue)用於將獲取到的值添加到隊列中。代碼邏輯是遍歷對象的所有超類,檢查每個欄位的值,並將非空欄位值添加到隊列。而tmpObjClass = tmpObjClass.getSuperclass()則是獲取當前類的父類,以便繼續檢查父類的欄位。
經過分析,Dir函數在VBS中的行為可能與預期不符。在VBS中,Dir函數用於返迴文件或目錄的名稱,如果文件不存在,則返回空字元串。然而,在WinCC的VBS環境中,Dir函數可能因環境配置或其他原因返回非空字元串。因此,即使文件存在,if條件也可能為真。
為了解決這個問題,可以嘗試以下方法。首先,確保文件路徑正確無誤。檢查filename變數的值,確保其包含正確的文件名。其次,可以使用FileExists函數來替代Dir函數,以提高判斷文件存在的准確性。例如:
If Not FileExists("C:\" & filename & ".xls") Then
此外,還可以添加日誌記錄功能,以便在腳本運行時記錄文件是否存在的情況。這有助於進一步分析問題所在。最後,考慮使用其他方法,如檢查文件屬性或嘗試打開文件,以驗證文件是否存在。
通過這些方法,可以更准確地判斷文件是否存在,從而解決If Dir("C:\" & filename & ".xls") = "" Then條件始終為真的問題。
需要注意的是,確保在開發過程中充分測試代碼,以驗證修改後的邏輯是否符合預期。同時,也要考慮代碼的可維護性和擴展性,以便在未來遇到類似問題時能夠快速定位並解決。
Ⅱ Shell腳本中判斷文件,目錄是否存在或者具有
#!/bin/sh
NovaPath=」/var/log/httpd/」
NovaFile=」/var /log/httpd/access.log」
#這里的-x 參數判斷$NovaPath是否存在並且是否具有可執行許可權
if [ ! -x "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-d 參數判斷$NovaPath是否存在
if [ ! -d "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-f參數判斷$NovaFile是否存在
if [ ! -f "$NovaFile" ]; then
touch 「$NovaFile」
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$NovaVar" ]; then
echo 「$NovaVar is empty」
exit 0
fi
#兩個變數判斷是否相等
if [ "$var1" = "$var2" ]; then
echo 『$var1 eq $var2′
else
echo 『$var1 not eq $var2′
fi
Ⅲ 按鍵精靈判斷一個文件夾是否存在怎麼寫
命令名稱:
判斷文件夾是否存在
命令功能:
判斷文件夾是否存在
命令參數:
參數1 字元串型,文件夾路徑
返回值:
布爾型,文件夾是否存在。True(是),False(否)
腳本例子:
按鍵精靈8及
以上語法
Msgbox lib.文件.判斷文件夾是否存在("c:\WINDOWS")
Ⅳ shell判斷文件夾是否存在
在Shell中,可以使用test命令或者其簡寫形式[來判斷文件夾是否存在。具體方法如下:
使用test命令判斷文件夾是否存在:
- 語法:test d 文件夾路徑
- 如果文件夾存在,則命令返回狀態碼0,否則返回非0狀態碼。
使用[判斷文件夾是否存在:
- 語法:[ d 文件夾路徑 ]
- 注意,[和]之間需要有空格,文件夾路徑前後也需要有空格。
- 同樣地,如果文件夾存在,則返回狀態碼0,否則返回非0狀態碼。
結合條件判斷語句使用:
- 示例代碼:bashDIR="/path/to/directory"if [ d "$DIR" ]; then echo "文件夾存在"else echo "文件夾不存在"fi 在這個示例中,如果/path/to/directory這個文件夾存在,則會輸出「文件夾存在」,否則輸出「文件夾不存在」。注意事項: 在使用路徑時,建議使用絕對路徑或者相對於腳本執行目錄的相對路徑,以避免路徑錯誤導致的判斷失誤。 Shell腳本對大小寫敏感,因此在使用命令和選項時需要確保大小寫正確。