como posso obter o nome da pasta e do arquivo no windows e armazená-lo na variável?

1

eu tenho uma pasta folder1 contém 3 arquivos file1 , file2 e file3 ... eu preciso de linha de comando para fazer a seguinte tarefa ... armazenar o nome do arquivo na variável ... porque Eu quero escrever lote dinâmico

    
por Mohammad AL-Rawabdeh 08.12.2010 / 07:31

3 respostas

3
FOR %%f in (folder1\*) DO @echo %%f

em um arquivo em lotes irá ecoar o nome do arquivo de cada arquivo na pasta. Para fazer a mesma coisa na linha de comando, use apenas um sinal de porcentagem para a variável. Você pode substituir echo por algum outro comando.

Se você citar %%f , echo produzirá as aspas ao redor do nome do arquivo, mas se você quiser passar o nome do arquivo para outros comandos, aspas podem ser necessárias se houver caracteres especiais, como espaços, em os nomes dos arquivos. Por exemplo, para produzir o conteúdo de todos os arquivos:

FOR %%f in (folder1\*) DO @type "%%f"

Sem as aspas, se houvesse um arquivo chamado "Has Space", type tentaria produzir o conteúdo de dois arquivos, "Has" e "Space". Com as aspas, funcionará como pretendido.

    
por 08.12.2010 / 11:24
0

Se você deseja fazer upgrade do lote para o PowerShell:

Foreach ($file in Get-Childitem "<PATH>") {
    $file.name
}
    
por 08.12.2010 / 15:49
0

Supondo que isso esteja em um arquivo de lote, você poderia fazê-lo em um loop for assim:

setlocal EnableDelayedExpansion 

for %%a in (folder1\*) do (
set fileVariable=%%a
echo !fileVariable!
)
    
por 09.12.2010 / 20:16