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