1

echo%cd%コマンドが作業ディレクトリを出力することはわかっています。「C:\ test \ bin\run」であると想定します。文字列から「run」を削除する方法を知りたいです。2回目の「実行」ディレクトリは「停止」ディレクトリにすることができます。したがって、stringreplaceコマンドは使用できません。私がやろうと思っているのは、最後の「\」の後の文字列を削除することです。誰もがWindowsコマンドライン(cmd)でこれを行う方法を知っています

4

2 に答える 2

1

プロセス中にdirを変更しても問題がない場合は、次のようにします。

set x=%cd%
cd ..
set parent=%cd%
cd %x%
于 2011-05-15T20:42:26.143 に答える
0

コマンドラインでは、これは機能します。

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A

これで、環境変数FOLDERに値「folder」が含まれます。

フォルダは\-区切り文字の後の3番目のトークンであるため、tokens=3を使用しました

tokens = 2を使用した場合、環境変数FOLDERに値「dir」が含まれていました

tokens = 1を使用した場合、環境変数FOLDERには値「c:」が含まれていました。

次のように%Aを%% Aに置き換えると、バッチファイルでも機能するはずです。

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A

これに基づいて、FOLDERが空の文字列になるまで繰り返すループを構築できます。ループでは、各ステップでFOLDERをLASTFOLDERに割り当てる必要があります。ループが完了すると、LASTFOLDERには現在のディレクトリのフォルダが含まれます。コードを別のスクリプト「GetBaseFolder.BAT」に入れて、メインバッチで「callGetBaseFolder%CD%」を使用することもできます。

于 2013-04-14T23:30:06.180 に答える