Windows のユーザーのドキュメント フォルダーに別のバッチ スクリプトをコピーするように設計されたバッチ スクリプトは、管理者権限で実行したときに、あるユーザーのドキュメント フォルダーに約 1 GB のフォルダーを作成するという望ましくない効果がありました。スクリプトを確認しましたが、この動作の原因はまだわかりません。
これは test1_install と呼ばれるソースです:
@echo off
mkdir %userprofile%\Documents\test1
copy *.* "%userprofile%\Documents\test1\" /Y
copy "test1 - Shortcut.lnk" "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup" /Y
これは、「test1.bat」、「input.txt」、「test1 - Shortcut.lnk」という 3 つのファイルを含むフォルダーに配置されます。フォルダー全体のサイズはわずか 16 KB です。
何か明らかなことを見逃しているに違いありません。それは何でしょうか?
答え1
この行は、copy *.* "%userprofile%\Documents\test1\" /Y
ディレクトリからではなくバッチコピーデータを作成します。保存されている、ディレクトリからそれはから呼ばれます最初の行の後に挿入するとcd /d %~dp0%
、後者のディレクトリが前者のディレクトリになります。