Tengo la necesidad de borrar todo bin
y obj
carpetas en una carpeta en mi PC. Entonces, estoy pensando en un archivo por lotes para hacer eso, pero no estoy familiarizado con el archivo por lotes en Windows. Por favor ayuda.
[Editar]
Después de la discusión con el usuario DMA57361
, llegué a la solución actual (aunque todavía tengo problemas, vea nuestros comentarios):
Cree un archivo .bat y pegue el siguiente comando:
start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
O
start for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s "%%d"
@ DMA57361: Cuando ejecuto su script, aparece el siguiente error. ¿Alguna idea?
windows-7
command-line
batch-file
Nam G VU
fuente
fuente
for \/d \/r ...
? ¿Por qué las barras dobles en lugar defor /d /r ...
? Y al ejecutar la versión "completa"/q
al final, como afirmo, elimina todo sin previo aviso, por lo que no devuelve ningún resultado (es decir, no le dice cuándo funciona, solo cuando tiene un error), ¿está seguro de que el segundo ejecutar arriba no funcionó correctamente?for / %d in
y nofor /d /r . %d in
, debe usar el comando completo a continuación, cada bit tiene una función diferente y es importante.start
y vea qué sucede. No es ideal, pero me pregunto si eso puede ayudar.Respuestas:
Esto se ha respondido previamente en Stack Overflow, que es de donde tomé el impulso principal de esta respuesta.
Pruebe el siguiente comando, puede ejecutarlo desde dentro
cmd
:Si necesita cambiar otras carpetas, simplemente agregue nuevos elementos al
(bin,obj)
conjunto en el medio del comando.Esto eliminará todo lo que coincida sin previo aviso y sin usar la papelera de reciclaje ; por lo tanto, si desea un poco más de seguridad, elimine
/q
la llamada alrd
final y el sistema debería preguntarle antes de cada eliminación.Si tiene la intención de ejecutar el comando desde un archivo por lotes , deberá reemplazar cada instancia de la variable
%d
con%%d
, por ejemplo:Según la conversión tenía en la pregunta comentarios
Si el comando se niega a ejecutarse en un archivo por lotes (no se puede replicar aquí), intente agregar el comando con el prefijo
start
. Aunque esto iniciará el proceso para ejecutarse simultáneamente con el archivo por lotes, lo que puede causar otros problemas, parece más probable que funcione correctamente.Además, si tiene archivos con nombre
obj
obin
dentro del árbol de carpetas en el que está trabajando el comando, recibirá un mensaje de error para cada archivo encontrado que tenga un nombre coincidente. Estos archivos coincidentes no se eliminan y no deben interponerse en el camino de que el comando elimine lo que debería. En otras palabras, se pueden ignorar de forma segura.fuente
Estos comandos deberían funcionar en cmd.
del * .obj
del * .bin
fuente
Solo haz
fuente