[英]Is there any way for windows batch script or command prompt to list the directories from a certain folder only without including the hard drive?
我嘗試使用dir /b/s *.png
列出我所有 png 文件的目錄。 結果是這樣的:
D:\Newfolder\test\images\approved\11.png
D:\Newfolder\test\images\approved\12.png
D:\Newfolder\test\images\approved\13.png
D:\Newfolder\test\images\approved\14.png
D:\Newfolder\test\images\approved\15.png
D:\Newfolder\test\images\approved\16.png
D:\Newfolder\test\images\approved\17.png
D:\Newfolder\test\images\approved\18.png
D:\Newfolder\test\images\approved\19.png
D:\Newfolder\test\images\approved\20.png
我希望它被縮短,所以它只會從圖像文件夾開始顯示;
images\approved\11.png
images\approved\12.png
images\approved\13.png
images\approved\14.png
images\approved\15.png
images\approved\16.png
images\approved\17.png
images\approved\18.png
images\approved\19.png
images\approved\20.png
有可能嗎? 如果不是,有沒有辦法通過從生成的文本文件中刪除前幾個文件夾來編輯目錄?
說我把dir /b/s *.png > path.txt
由於列表沒有空格,我該如何編輯文本。
我還是個新手,所以我對很多命令不太熟悉,但這是我的理解所能做到的。
假設您的問題中有此評論:
“我希望它被縮短,所以它只會從“圖像”文件夾開始顯示; “
您總是希望從圖像文件夾中獲取,並且還假設圖像文件夾始終存在於路徑中:
@echo off & setlocal enabledelayedexpansion
for /R %%i in (*.png) do (
set "_fp=%%~i"
echo !_fp:*\images\=images\!"
)
pause
或者明確確保您只在路徑中包含帶有\\images\\
的路徑:
@echo off & setlocal enabledelayedexpansion
for /F "delims=" %%i in ('dir /b /s *.png ^| findstr \images\') do (
set "_fp=%%~i"
echo !_fp:*\images\=images\!"
)
pause
使用 pushd 的示例:
@echo off & setlocal enabledelayedexpansion
pushd "%~1"
for /F "delims=" %%i in ('dir /b /s *.png ^| findstr \images\') do (
set "_fp=%%~i"
echo !_fp:*\images\=images\!"
)
pause
popd
因此,您可以從cmd
運行上述內容,只需將您希望腳本在其中運行的路徑作為script_name.cmd "C:\\some path\\here"
傳遞
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.