获取文件夹和文件名称并将其存储在 Windows 中的变量中?

获取文件夹和文件名称并将其存储在 Windows 中的变量中?

我有一个文件夹,其中folder1包含 3 个文件file1file2file3等。

我需要命令行来执行以下任务。

将文件的名称存储在变量中,因为我想编写动态批处理。

答案1

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

在批处理文件中将回显文件夹中每个文件的文件名。要在命令行中执行相同操作,请仅对变量使用一个百分号。您可以echo用其他命令替换。

如果您引用%%fecho将输出文件名周围的引号,但如果您想将文件名传递给其他命令,则如果文件名中有特殊字符(例如空格),则可能需要使用引号。例如,要输出所有文件的内容:

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

如果不带引号,如果有一个名为“Has Space”的文件,type则会尝试输出两个文件的内容,“Has”和“Space”。如果带引号,它将按预期工作。

答案2

假设这是在批处理文件中,您可以在 for 循环中执行如下操作:

setlocal EnableDelayedExpansion 

for %%a in (folder1\*) do (
set fileVariable=%%a
echo !fileVariable!
)

答案3

如果要从批处理升级到 powershell:

Foreach ($file in Get-Childitem "<PATH>") {
    $file.name
}

$filenames = (Get-ChildItem -Path "PATH" -Directory).Name

相关内容