У меня есть файл с именем fix.bat в каталоге F: \, который мне нужно переместить в C: \ Users. По уважительной причине я решил, что мне нужно закодировать файл в fix.bat, который будет создан при запуске fix.bat, и переместить fix.bat из каталога F: \ в C: \ Users, запустить fix .bat, и в процессе всего этого создайте несколько папок в C: \ Users.
Теперь, в самом начале файла fix.bat, выполняется проверка, чтобы определить, находится ли fix.bat в C: \ Users. Если это так, то start.bat не создан, но fix.bat продолжает свою задачу. Если это не так, start.bat создается и перемещает fix.bat в C: \ Users. По крайней мере, это идея.
Однако по некоторым причинам это не будет работать. Что происходит, так это то, что открывается бесконечный цикл CMD-окон, и мне приходится перезагружать компьютер.
Вот соответствующая часть кода fix.bat:
@echo off
if %cd% == C:\Users goto z
if not %cd% == C:\Users goto x
:x
echo pushd c:\users >>start.bat
echo md results-main >>start.bat
echo cd results-main >>start.bat
echo md results-e >>start.bat
echo md results-p >>start.bat
echo md results-s >>start.bat
echo md results-x >>start.bat
echo pushd %cd% >>start.bat
echo move fix.bat c:\users >>start.bat
echo pushd c:\users >>start.bat
echo start fix.bat >>start.bat
call start.bat
exit
:z
insert code here
start.bat
переопределяет встроеннуюstart
команду. Назовите свой пакетный файл как-нибудь еще.