2

フォルダー内のファイル名にアクセスできる for ループがあり、そのファイル名に文字列が含まれているかどうかを確認する必要があります。

たとえば、ファイル名: 'C:\Temp\hello.cs' 検索するパターン: 'C:\Temp\h'

これの疑似コードは

IF filename.Contains(pattern) then
    // DO SOMETHING
END IF

私はこれを試しました:

%%i|find %pattern% >nul
if not errorlevel 1 echo "Pattern matched"

しかし、ファイルをダブルクリックしたかのようにファイルが開いただけです。

4

2 に答える 2

2

みんなありがとう、しかし私はこれがうまくいったことがわかった:

Set pattern=name

for .... do (
    Set filenameStr=%%i
    Set patternReplaced=!filenameStr:%pattern%=?!

    If Not !patternReplaced! == !filenameStr! echo "contains pattern"
)
于 2012-08-13T13:51:43.167 に答える
0

Rob van derWoudeのScriptingPagesは、このようなDOS/バッチファイルの問題を解決するための優れたリソースです。私が見ているものから、このようなものがあなたのために働くかもしれません:

ECHO OFF

FOR %%A IN (C:\Temp\h*) DO (
    ECHO ---
    ECHO Pattern matched
    ECHO Name in 8.3 notation : %%~snA
    ECHO Fully Qualified Path : %%~fA
)

これがあなたが探しているものではない場合は、「ハウツー」セクションをチェックして、他の解決策を確認してください。

于 2012-08-13T13:43:36.433 に答える