2

インターネットで数回検索した結果、現在のディレクトリにあるbatファイルとパスが異なるファイルでバッチを実行できないことは明らかです。このファイルを現在のディレクトリにコピーせずに、この問題の回避策があるかどうか教えていただけますか?

詳細については、現在のディレクトリからパラメーターを指定してバットを実行するたびに発生するエラーを以下で確認してください。「%~f1」をエコーすると「D:\WorkpaceDEV\opt\ABC\IJS_002.TXT」が正常に返され、テキスト ファイルが D:\WorkpaceDEV\opt\ABC フォルダーに完全に存在するため、理由がわかりません。

C:\Users\bob\Desktop\DEV\Workspace>
C:\Users\bob\Desktop\DEV\Workspace>run.bat "D:\WorkpaceDEV\opt\ABC\IJS_002.TXT"
"D:\WorkpaceDEV\opt\ABC\IJS_002.TXT"
La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.

ここに私の起源のバットファイルがあります

     @ echo off
    echo "%~f1"
    findstr /r "I.*=" "%~f1" >outer.TXT

表示されたエラー メッセージは構成の問題に関連しているように思えますが、よくわかりません! それが助けになるなら、私はセブン 32 にいます。あなたの側でこの問題が発生した場合もお知らせください。もしそうなら、それは Microsoft からのバグであると結論付けることができるでしょうか? 私は本当にブロックされており、あなたからの連絡を楽しみにしています. この問題に目を向けてくれてありがとう

4

2 に答える 2

3

を使用%~f1しても、ファイルが存在することは保証されません! バッチ ファイルに指定されたパラメーターに完全なパスが含まれている場合は%~f1、同じ情報が返されるだけで、ファイルの存在は確認されません。

以下のバッチファイルをテストすることをお勧めします。

@ echo off
echo "%~f1"
if exist "%~f1" (
   findstr /r "I.*=" "%~f1" >outer.TXT
) else (
   echo File does NOT exist!
)
于 2013-06-03T22:18:21.780 に答える
0

echo %ComSpec% は、プロンプト コマンドで何も表示されませんでした。どうしてか分かりません。したがって、「C:\Windows\system32\cmd.exe」に設定すると、問題は解決しました。

皆様、お調べいただきありがとうございます。

于 2013-06-04T19:55:34.960 に答える