0

大学の講義のオーディオとビデオを分割する単純なバッチ ファイルがあります。ファイルは、別のポスターからのコードを使用して取得されます。

   @echo off 
setlocal enableDelayedExpansion 

set DRIVE=%cd:~0,3%
set MYDIR=%DRIVE%ToDo\ToConvert\

for /F %%x in ('dir /B/D %MYDIR%') do (
    echo %%x
    )
pause

ファイルのラベルは次のとおりです。

PHY2021 (1).mp4
PHY2021 (2).mp4
PHY2021 (3).mp4
etc

スクリプトの出力は次のとおりです。

PHY2021
PHY2021
PHY2021

問題は明らかですが、「スペース」とバッチに続くものを含める方法が見つかりません。検索で「スペース」を「アンダースコア」に置き換える方法を見てきましたが、作業があるかどうか誰か教えてもらえますか-その周り?

4

2 に答える 2

0

編集:間違いがあったため、将来の読者を混乱させないように、Endoroのものと一致するように回答を編集しました。

には、スペースとタブのデフォルトの区切り文字セットがありますFOR /F。次のようにオーバーライドする必要があります。

  @echo off 
setlocal enableDelayedExpansion 

set DRIVE=%cd:~0,3%
set MYDIR=%DRIVE%ToDo\ToConvert\

for /F "delims=" %%x in ('dir /B/D %MYDIR%') do (
    echo "%%x"
    )
pause

delims=の後に注意してくださいFOR /F

公式FORドキュメントから:

    delims=xxx      - specifies a delimiter set.  This replaces the
                      default delimiter set of space and tab.
于 2013-06-07T07:17:01.923 に答える