2017-08-08 6 views
0

基本的に私のSystem32フォルダには.batがあります。 このバッチファイルはパラメータ入力を受け付けます。この入力はファイルです。 は、私はそれは私が私のコマンドプロンプトを開くことができることになりたかった、例えば system32のバッチファイルディレクトリをCMDコマンド実行ポイントに変更します

batchfile text.txt 

を行うと、それはbatchfile.batにあるtest.txt渡します。明らかにこれを行う私の端末のために、それはSystem32にある必要があります。 それが私の問題点です。バッチファイルはSystem32にあるので、コマンドを実行すると、ディレクトリがSystem32に変更されます。

ただし、私が与えるパラメータはファイルです。コマンドが実行され、ディレクトリがSystem32に変更されると、明らかにファイルにアクセスできなくなります。

どうすればこの問題を回避できますか?

+1

私の問題を解決することができ、スクリプト – SomethingDark

+0

にファイルのフルパスを渡しますが、私が書いているスクリプトはオープンソースのプログラムなので、コマンドプロンプトコマンドを使いたいと思います。私のバッチファイルをSystem32に持っているのは便宜上のため、私はシステム内のどこでも "batchfile parameter.txt"を実行できます。パス全体を入力しなければならない場合はSystem32に入れないかもしれません。 –

+1

このスクリプトは、System32にある他のファイルを参照していますか? – SomethingDark

答えて

0

あなたがディレクトリを変更する前に、それを参照し、その方法はその完全修飾ファイル名にファイル名を展開すると:

@echo off 
for %%F in (%1) do set USR_REQFNM=%%~dpnxF 
C: 
cd \Windows\System32 
echo The requested file is "%USR_REQFNM%" 
goto ENDIT 

REM Cleanup 
:ENDIT 
set USR_REQFNM= 
関連する問題