Eu gostaria de poder verificar se existe uma determinada pasta (Pasta A) e, se houver, para que uma mensagem seja exibida e, em seguida, o arquivo em lotes seja encerrado.
Se a Pasta A não existir, gostaria de verificar se existe outra pasta (Pasta B). Se o FolderB não existir, uma mensagem deve ser exibida e a pasta deve ser criada; se o FolderB existir, uma mensagem deve ser exibida informando isso.
Alguém tem alguma idéia do código que eu poderia simplesmente usar no bloco de notas para criar um arquivo em lotes que me permita fazer isso?
Tudo isso precisa ser feito em um .bat
arquivo.
windows
batch-file
user3179825
fonte
fonte
Respostas:
Tente usar isto:
Substitua yourfilename pelo nome do seu arquivo.
Para um diretório, consulte este https://jeffpar.github.io/kbarchive/kb/065/Q65994/
a barra invertida à direita ('\') parece ser suficiente para distinguir entre diretórios e arquivos comuns.
fonte
if exist "c:\folder\nul" echo ok
não funcionou para mim no Windows 7. O que funcionou foiif exist "c:\folder\" echo ok
.if exist "networkPath\nul"
pode reportar falsamente um arquivo como uma pasta nas unidades de rede do Windows. Infelizmente,if exist "networkPath\"
o mesmo sofre o mesmo problema. Consulte a atualização de 08/12/2015 em stackoverflow.com/a/8669636/1012053 para obter uma técnica que foi confiável em todos os meus testes.if exist c:\Windows\nul echo ok
dizok
, masif exist "c:\Windows\nul" echo ok
não diz nada. Como eu disse, enquantoif exist "c:\Program Files\nul" echo ok
nadaif exist "c:\Program Files\" echo ok
diz , dizok
e, portanto, funciona mesmo para caminhos com espaços.Eu acho que a resposta está aqui (possivelmente duplicada):
Como testar se um arquivo é um diretório em um script em lotes?
Substitua% VAR% pelo seu diretório. Leia a resposta original porque inclui detalhes sobre como lidar com espaços em branco no nome da pasta.
Como o foxidrive disse, isso pode não ser confiável nas janelas da classe NT. Funciona para mim, mas sei que tem algumas limitações (que você pode encontrar na pergunta mencionada)
deve ser suficiente para janelas modernas.
fonte
if exist "c\:folder\" echo folder exists
E:\NUL