㈠ 如何用批處理,把當前文件夾中的所有文件夾名、文件名提取出來,生成txt文件
以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI
@echo off
rem 將當前目錄下的所有文件和文件夾的路徑輸出/導出一個以指定字元串和當前日期組合命名的txt文本文件里
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /f "tokens=2 delims==." %%a in ('wmic OS get LocalDateTime /value^|find "="') do set t=%%a
set today=%t:~,4%-%t:~4,2%-%t:~6,2%
dir /b/s>"contents(%today%).txt"
echo;%#% +%$%%$%/%@% %z%
pause
exit
㈡ 批處理:文件夾內都是圖片,想要提取文件夾內所有的文件名+修改時間(要含分秒)生成exce的XLSX格式
第一步:將壓縮包解壓到一個空文件夾里
第二步:進入這個文件夾,點當前窗口工具欄的【搜索】(你知道什麼叫工具欄吧?),於是在左側出現搜索欄
第三步:在【要搜索的文件或文件夾名為】框里填*.* 就會搜索出當前文件夾下的所有文件和子文件夾
第四步:然後在右側的空白區域點右鍵,【排列圖標】-【名稱】,即可把所有的文件和文件夾分開
第五步:再用Shift鍵選中所有文件,復制或者剪切就隨你了,剩下的不用說了吧~~~、
祝你好運哦!
㈢ 批處理獲取文件名並保存至變數中
1 其實另保存為"數組"變數是沒必要的,要作什麼直接在for循環內寫命令就能辦到的。
2 所列代碼已將文件夾名保存到"數組"變數中了,但由於set array_!n! = %%i 這句等號前有空格,數組變數名其實在每個之後就也要帶等量空格才匹配,而等號後有空格則所賦的文件夾名每個前也帶了空格,因此應該去掉此句等號前後的空格
3 echo %array_!n!%這句是不合格的,要寫成call echo %%array_!n!%%
4 針對第2條修改後,後一個for命令就能正常顯示了,但"數組"起止值不對,各擴大了1個的范圍
㈣ 批處理獲取文件名並提取當前文件夾名
假設當前文件夾為aaa,且批處理文件在當前文件夾下,生成的txt文件也放在當前文件夾下的話:
@echo off
dir/b/s>aaa.txt
pause
如果不含子文件夾內容的話,/s參數可以省略
㈤ 批處理如何提取文件位置和文件名 不包括後綴
請參考:
@echo off
set str1=C:\abc\file1.abc
call :show %str1%
echo %str2%
pause
goto :eof
:show
set str2=%~dpn1
簡要說明:對於變數%0~%9及for里使用的%i這樣的變數,可以有以下的語法:
~I - 刪除任何引號("),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件屬性
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
以上的結果是可以組合的。我們可以通過"%~dpn"這樣形式的組合獲取一個路徑形式的變數的路徑及文件名的組合。
在這里,首先我假設"C:\abc\file1.abc"已經在一個變數裡面,因為調用它使用的是"%%"的格式,不能擴充,所以我們需要使用call調用一段代碼來將它轉換成%1的形式。所以你看到了"call :show %str1%" 這一句,通過這里調用call標簽後的語句。
另外一個需要注意的是在被調用的":show"標簽前面是一句"goto :eof",表示批處理運行至此跳轉至文件末尾(也就是退出程序),後面的":show"標簽就不會運行了,
相信建立一個C:\abc\file1.xyz這樣形式的文件對你來說不是問題,我就不寫了