Остановить процесс копирования, когда папка достигает определенного размера - почему код не работает?
243
Daniel
Я написал код в пакетном режиме, который копирует изображения в определенную папку
pic.bat
start temp\check.bat for /r "%userprofile%" %%a in (*.jpg) do @copy /y "%%a" temp
И я хотел бы остановить этот процесс, как только папка достигнет определенного размера, поэтому я попытался отслеживать размер папки, используя другой пакет, и по заданию убивать процесс копирования после достижения определенного размера.
check.bat
:loop setlocal enabledelayedexpansion set /a value=0 set /a sum=0 for /r %1 %%i in (*) do ( set /a value=%%~zI/1024 set /a sum=!sum!+!value! ) if %sum% gtr 150000 goto end goto loop :end taskkill /im pic.bat
Check.bat расположен в папке temp, куда копируются изображения + он запускается одновременно с pic.bat - но ничего не происходит, когда предел нарушается. Вы видите что-то не так здесь? Я прошу прощения, если ответ очевиден, я новичок во всем этом.
Попробуйте вызвать taskkill с флагами / f (force) и / или / t (tree). Я подозреваю, что / т сделает это.
ventsyv 7 лет назад
0
Если вы запустите check.bat, вы видите команды, которые выполняются с правильными значениями? Самый простой способ сделать это - убедиться, что папка больше предела размера, а затем запустить проверку и посмотреть, пытается ли она выполнить команду taskkill.
Twisty Impersonator 7 лет назад
0
Почему бы вам просто не проверить предел в pic.bat после копирования каждого файла? т.е. объединить два пакетных файла. Тогда вместо использования taskkill просто вырвитесь из цикла for.
DavidPostill 7 лет назад
0
Я решил эту проблему, получив идентификатор процесса процесса pic.bat, а затем распечатав этот идентификатор процесса в текстовый файл, который check.bat прочитал и использовал для уничтожения процесса (taskkill / pid% pid_here%). Похоже, проблема была в том, что taskkill распознал только cmd.exe, а не pic.bat.
Daniel 7 лет назад
0
Поздравляем - вы успешно создали [Rube Goldberg machine] (https://en.wikipedia.org/wiki/Rube_Goldberg_machine)
dbenham 7 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
12
Почему папка / winsxs становится такой большой и ее можно уменьшить?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
14
PDF Viewer в Windows
-
-
7
Какие службы Windows можно безопасно отключить?
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
1
Windows теряет макет экрана
-
1
Есть ли способ предотвратить установку / обновление, чтобы засорять мой жесткий диск загадочными пап...
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
6
Просмотр журнала в Windows
-
3
Фоновая проблема Windows с двумя экранами