Estoy haciendo un archivo por lotes simple que requiere un argumento (puede proporcionar más, pero los ignoro).Windows Batch Files: if else
Para probar, esto es lo que tengo hasta ahora.
if not %1 == "" (
dir /s/b %1
) else (
echo no
)
Básicamente, quiero decir si se proporciona un argumento, de forma recursiva mostrar todos los archivos en la carpeta. De lo contrario, di no.
Funciona cuando proporciono un argumento, pero si no proporciono uno solo me dirá (was unexpected at this time
.
Quiero decir, funciona, pero al menos quería mostrar un mensaje fácil de usar explicando por qué no funciona. ¿Cómo debería cambiar el código?
Por lo tanto, es básicamente un valor nulo. Lo entiendo. – MxyL
si no es {% 1} == {} es más seguro ya que "% 1" == "" sería verdadero si el valor de% 1 fuera comillas. – workabyte
@workabyte: Usar llaves como sugeriría podría ser más confuso cuando '% 1' se refiere a una ruta o archivo, porque a diferencia de los caracteres de corchete' {'y'} ', las comillas dobles' "' nunca pueden aparecer en ningún La ruta o el nombre de archivo de Windows. Por lo tanto, es posible que evite intentar descifrar las cosas que se resuelven en '{}}}} == {}'. Tal vez de manera más realista, tenga en cuenta que '{{ea14c59a-889c-495b-8bb6-be78cf960e93} .txt} == {{ea14c59a-889c-495b-8bb6-be78cf960e93.txt}} ', por ejemplo, es falso. –