做同樣的
更安全的方式:
@echo off
setlocal
set "yourDir=C:\Users\username\Documents\Training\Pentaho\Outputs\BatchFileOutput\"
set "yourExt=*.csv"
pushd %yourDir%
for %%a in (*.%yourExt%) do echo %%a
popd
endlocal
同時設置:您的目錄和您正在搜索的擴展,更改目錄到一個預先設置好的可能包括/d
裏沃變化然後對與您的擴展名匹配的所有文件運行循環並將其回顯出來。爲了節省只有最後一個你可以使用:
...do set fileName=%%a
echo %FileName%
或者用他們所有的循環中,你可以使用:
@echo off
Setlocal EnableDelayedExpansion
REM Other things done here
do (
REM Do stuff with %%a here
Set filename=%%a
echo !filename!
echo !filename:~0,6!
echo !filename:a=b!
)
如果你只是想附和他們,你可以去爲echo %%a
。如果您想按照註釋中所述執行字符串替換或子字符串等其他操作,則需要如上所示的DelayedExpansion。對於SO也有很多問題。
請注意,您可以獲得文件路徑的不同「部分」。看看this answer我總是看看。或者,查看for命令的文檔,在命令行中鍵入for /?
。
我認爲在你的代碼中唯一的問題是'* .csv'前面的_space_ ... – aschipfl