web-dev-qa-db-ja.com

バッチファイルで「指定されたファイルが見つかりません」と表示されるが、コマンドはcmdで正常に実行される

単純なバッチファイルを実行しようとしています:

@echo off      <-- don't print this line or any of the preceeding lines to the console window.
pushd "K:\"    <-- in the quoted directory
for %%j in (*) <-- for every file in the directory
do
if %%~zj       <-- if the size of the file
lss 37000      <-- is less than 37k
del %%j        <-- delete the file
popd           <-- go back to original directory.

@echo offpushdでエラーが発生し始めましたが、cmd.exepushdを試してみると問題なく動作します。私は簡単なものを見逃していると確信しています。

何か案は?

3
user241447

これは、プログラムを使用してバッチファイルを開始し、バッチファイルが最初にcmd.exe/cを呼び出さない場合に発生します。 pushd.exeはありません。cmd.exeの下の組み込みコマンドです。ただし、プログラムがバッチファイルを呼び出すと、直接起動します。cmd.exeはありません。 (はい、これは奇妙です。)

解決策:これをどこから実行しても、前にcmd.exe/cを付けます

したがって、deletelittlefiles.batを実行している場合は、cmd.exe/cdeletelittlefiles.batに変更してください。

出典:私はソフトウェアテストチームのラボマネージャーであり、テストハーネスは実行可能ですが、cmd.exeで起動せずに実行する必要はありません。

5
Mark Allen