質問: .batファイルで変数を2パーセントで部分文字列化する .batファイルを実装しようとして問題が発生しましたが、答えが見つかりませんでした。システムパスなしですべてのフォルダ名を表示しようとしています。私はそのようなことを試しましたが、うまくいきません。@echo off set back=%cd% for /d %%i in (c:\test\test*) do ( cd %%i 2>&1 >nul echo %%~nxi:~10,5 ) cd %back% 2>&1 >nul 解決策はありますか? :-)
回答: 部分文字列は通常の変数でのみ機能し、メタ変数では機能しません。 コンテンツを変数にコピーします。これは(コードブロック)内にあるため、必要です delayedexpansion 疑似呼び出しメソッドの使用::: q:\test\2018\07\26\su_1345000.cmd @echo off pushd . for /d %%i in (a:\test\test*) do ( set "dir=%%i" call echo %%dir:~10,5%% ) popd このようなツリーでは:> tree └───test ├───test1 ├───test2 └───test3 それが戻る> q:\test\2018\07\26\su_1345000.cmd st1 st2 st3 オフセットが正しくなかった可能性があります。