3

親ディレクトリ(Folder1としましょう)内のファイルの一部を使用するバッチファイルを作成しています。

C:\User\Steve\Foder1\

ここで、Folder_1全体を再配置可能にして、フォルダーを自分/他の人のコンピューターのどこにでもコピーして貼り付け、バッチスクリプトを実行できるようにしたいと考えています。

D:\User\Random_guy\Folder1\

問題は、別のバッチスクリプトを作成せずに、親ディレクトリである (D:\User\Random_guy\Folder1) に対してバッチファイルのコマンドプロンプトを開始する方法です。

4

3 に答える 3

5

バッチ ファイルを次のように開始します。

pushd %~dp0

これにより、現在のディレクトリがバッチ ファイルを含むフォルダーに設定されます。次に、バッチ ファイルで、すべてのパスが現在のディレクトリからの相対パスであることを確認します。

ただし、バッチ ファイルが実行中に他のディレクトリに変更され、正確なパスを知らなくてもバッチのホーム フォルダの内容を参照できるようにしたい場合は%~dp0、ファイルへのパスと同じものを使用してください。使用したい。たとえばFileA、バッチ ファイルと同じフォルダーからの a は、次のようにアドレス指定されます。

"%~dp0FileA"

\の前に a がないことに注意してくださいFileA。これは、%~dp0すでに末尾が含まれている\ため、全体が正しいパスとして評価されるためです。(ただし、 のように別のバックスラッシュを配置"%~dp0\FileA"しても、同様に機能するはずです。これは、パスの途中にある場合、Windows は通常、複数の連続するバックスラッシュを無視するためです。)

于 2013-04-05T03:15:05.857 に答える
0

だから - 私がこれを正しく理解しているなら、あなたは実行したい

`C:\steve\folder1\yourbat.bat`

現在のディレクトリをにコピーC:\steve\somefilesして設定する必要がありますか?D:\Random_guyD:\Random_guy\folder1

@ECHO OFF
SETLOCAL
SET subdir=folder1
SET destdir=%~1
IF NOT DEFINED destdir ECHO Require destination username&GOTO :EOF 
SET destdir=%~1\%subdir%
:: Ensure destination exists
ECHO MD "%destdir%" 2>nul
SET "sourcefrom=%~dp0.."
ECHO COPY "%sourcefrom%\filestocopy" "%destdir%\..\"
ECHO CD /d "%destdir%"

MDCOPYおよびCDコマンドは単にed であることに注意してください。それらを実行するには、キーワードをECHO削除する必要があります。ECHO

パラメータを指定してバッチを実行しますD:\Random_guy

于 2013-04-05T06:20:11.040 に答える
0

バッチ ファイル内の %CD% は、現在のディレクトリ/バッチが実行されているディレクトリを取得します。

于 2013-04-05T01:16:53.633 に答える