次の問題についてサポートが必要です。
CMDコマンドを使用して、バッチファイル内のコンポーネントにファイルパスを分割したいと思います。
まず、バッチファイルが配置されているパスを特定します。
set home=%~dp0 (e.g. C:\SomeFolder\OtherFolder\)
私が必要としているのは、この文字列を次のように抽出することです。
- C:
- SomeFolder
- OtherFolder
これらのコンポーネントを次のように再連結します。
- C:\\ SomeFolder \\ OtherFolder \\
これは、ファイルパスの要素をループするのに役立ちます
set List=!home!
:ProcessListSource
FOR /f "tokens=1* delims=\" %%a IN ("!List!") DO (
if "%%a" NEQ "" (
echo %%a
)
if "%%b" NEQ "" (
set List=%%b
goto :ProcessListSource
)
)
ループは正常に機能し、ファイルパスのコンポーネントは正しくエコーされます。単純な文字列連結でechoステートメントを簡単に変更できると思いました
if "%%a" NEQ "" (
set foo=%foo%%%a
set foo=%foo%\\
)
結果は単に冷静です。バックスラッシュのみが変数に追加されます。私の間違いはどこにありますか?%% aのエコーは正常に機能しますが、連結ステートメントではエラーのようです。引用符と「!」で遊んだ しかし、何も機能しません。
それに関するどんな助けも高く評価されます