畸形資料夾就是在windows中無法或難以通過正常途徑進行建立、檢視、刪除等操作的小強資料夾。
這裡以結尾帶點的字碼畸形為例討論如何獲取畸形資料夾的短檔名,以拓展為au3使用(如重新命名、移動畸形資料夾等操作)。
;以下為我做的簡單測試
;直接用 filegetshortname() 不行,因為它不承認畸形資料夾的存在...
;用 for /f "delims=" %%a in ("畸形資料夾路徑") do @echo %%~sa 也不行,因為在這裡畸形資料夾路徑中的畸形資料夾必須以短檔名表示(我就是不知道短檔名,真暈)
;直接自己根據規則命名,貌似這8個字元的命名規則很難辦,並非簡單的 ******~i,對於短於8個位元組的畸形資料夾名要新增字母及數字,還有前8個位元組相同的還要遞加,如******~2、******~3等,還有小數點的位置等等,此路不通……
;最後想到的是,如果畸形資料夾所在的路徑為正常目錄,則可以先dos進入此目錄,然後dir /x來獲取畸形資料夾的短檔名,當然也可以採取下面的查詢方式。再通過回顯得到這該死的短名。
for /f "tokens=4 delims= " %%a in ('dir /x "畸形資料夾所在的正常目錄"^| findstr "畸形資料夾"') do @echo %%a
;****************************************===;
以下幾個關於畸形資料夾操作的例子,可以給測試提供條件
;建立畸形資料夾 ab.
$a = 'ab.'
runwait(@comspec & ' /c md "' & $a & './"', '', 0)
if fileexists($a & './') then msgbox(64, '完成', '已成功建立資料夾:"' & $a & '" 資料夾')
複製**
;;開啟畸形資料夾 ab.
$a = 'ab.'
runwait('explorer.exe "' & $a & './"')
複製**
;;複製檔案到畸形資料夾 ab.
$a = 'ab.'
runwait(@comspec & ' /c copy "' & @scriptfullpath & '" "' & $a & './"', '', 0)
if fileexists($a & './' & @scriptname) then msgbox(64, '完成', '已成功複製檔案:"' & @scriptname & '" ')
複製**
;;刪除畸形資料夾 ab.
$a = 'ab.'
runwait(@comspec & ' /c rd "' & $a & './" /s /q', '', 0)
if not fileexists($a & './') then msgbox(64, '完成', '已成功刪除資料夾~ ')
複製**
;
獲取資料夾中的資料夾中的檔名
希望大家多給點意見。由於著急還不知道怎麼弄 情急之下弄出了這麼個東東。檔案的結構是這樣的 在c盤根目錄 有個 商列表資料夾 在 商列表資料夾內有200個 商資料夾 在 商資料夾內有n個檔案 arraylist list new arraylist 記錄c 商列表中的 商資料夾名字 arraylist...
獲取短檔名或路徑
一直在找.獲取短檔名或路徑的函式,可能自己笨沒有找到就自己寫了乙個.是通過呼叫winapi函式實現的.1.宣告getshortpathnamea dllimport kernel32.dll entrypoint getshortpathnamea private static extern int...
shell中獲取資料夾中檔名
shell程式設計中常常需要遍歷資料夾下的檔案,獲取名稱進行進一步的處理,記錄一下網上的常用方式,以便用到的時候檢視。bin bash get all filename in folder path 1 獲取資料夾下所有檔案 files ls path 遍歷資料夾中檔案,列印檔案名 for file...