獲取畸形資料夾的短檔名

2021-05-23 00:13:17 字數 1459 閱讀 4296

畸形資料夾就是在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...