我有數百個檔案夾,其中有多個名為 filename.ext 的檔案,還有另一個名為 filename.ext.url 的檔案
我需要一種方法來檢查 filename.pdf.url 是否存在 filename.ext 是否存在。如果它們都存在,請洗掉 filename.ext.url
我不能只搜索并洗掉所有 *.url 檔案,因為如果正常檔案不存在,則需要它們
然后我需要在特定目錄的所有子目錄中重復這一點。
我不介意它是一個批處理腳本、執行它的 powershell 腳本或任何其他方式。我只是對如何做我想做的事感到困惑。
目前我正在逐個檔案夾進行操作,手動比較檔案名、檔案大小和檔案圖示。
uj5u.com熱心網友回復:
foreach ($file in ls c:\files\*.url) {
if (ls -ErrorAction Ignore "$($file.PSParentPath)\$($file.basename)") {
remove-item $file.fullname -whatif
}
}
準備洗掉時洗掉whatif。基本名稱會洗掉擴展名,因此如果它們都是 .ext.url ,那么它將檢查該檔案是否存在。它還洗掉了路徑,因此我們也將其拉出。
另一種方式(更符合您所解釋的內容)類似于
foreach ($file in ls "c:\files\*.url") {
### replacing '.url$' means .url at the end of the line in Regex
if (ls -ErrorAction Ignore ($file.FullName -replace '\.url$')) {
remove-item $file.fullname -whatif
}
}
uj5u.com熱心網友回復:
for /r "startingdirectoryname" %b in (*.url) do if exist "%~dpnb" ECHO del "%b"
預計這將直接從提示中執行。如果要求是作為一個批處理線,每個都%需要加倍(即。%%)。
這也假定該whatever.ext檔案與該檔案位于同一目錄中whatever.ext.url。
請注意,要洗掉的檔案名只會被echo編輯到控制臺。要實際洗掉檔案,請洗掉echo關鍵字。
首先針對測驗目錄進行測驗!
[未經測驗]
uj5u.com熱心網友回復:
要檢查“filename.ext”,請檢查“filename.ext.”,它們是同一個檔案。
在 CMD.EXE 中,你可以執行 "IF EXIST "filename.ext." CALL :DoIt
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/526347.html
上一篇:Firebase訂單和限制
