如何在Windows cmd中组合TYPE和DIR命令?

发布于 2025-01-11 15:24:26 字数 392 浏览 0 评论 0原文

我必须将 LINUX 命令转换为 Windows 命令。这是命令:

cat $(find folderName)/fileName

网上搜索发现:

  1. cat 可以用 type 翻译
  2. find 可以用 dir 翻译>

所以我尝试使用这样的东西:

type @(dir folderName /s)/fileName
type < (dir folderName /s)/fileName

它们是错误的,但我找不到任何解决方案来组合它们。 有人可以帮助我吗?

I have to translate a LINUX command into a Windows one. This is the command:

cat $(find folderName)/fileName

Searching online I found that:

  1. cat can be translated with type
  2. find can be translated with dir

So I tried to use something like this:

type @(dir folderName /s)/fileName
type < (dir folderName /s)/fileName

They are wrong, but I can't find any solution to combine them.
Can someone help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挖鼻大婶 2025-01-18 15:24:26

我相信其他人会提供 FOR 循环解决方案。

如果您使用 PowerShell Core 或 Windows PowerShell,这并不困难。如果您使用的是受支持的 Windows 系统,则 Windows PowerShell 已随其安装并且可用。

虽然您可能会正确地说,这比 bash/ksh 脚本中所需的输入量要多,但它在 Linux、MacOS 和 Windows 上运行得同样好,无需任何修改。无需“翻译”。

Get-Content -Path $(Get-ChildItem -Recurse -File -Path '.' -Filter 'sheet1.xml' |
    Where-Object { $(Split-Path -Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

使用别名可以减少输入量。虽然这在交互式 shell 中是可以的,但将别名编码到脚本文件中是不好的做法。

gc $(gci -rec -file 'sheet1.xml'|?{$(Split-Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

如果您迫切希望从 cmd 命令提示符运行此命令,可以使用以下命令。

powershell -NoLogo -NoProfile -Command ^
    Get-Content -Path $(Get-ChildItem -Recurse -File -Path '.' -Filter 'sheet1.xml' ^| ^
        Where-Object { $(Split-Path -Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

powershell -NoLogo -NoProfile -Command ^
    gc $(gci -rec -file 'sheet1.xml'^|?{$(Split-Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

I am confident that others will provide FOR loop solutions.

This is not difficult if you use PowerShell Core or Windows PowerShell. If you are on a supported Windows system, Windows PowerShell was installed with it and is available.

While you might rightly say that this is more typing than needed in a bash/ksh script, it will run equally well on Linux, MacOS, and Windows without any modification. No 'translate' needed.

Get-Content -Path $(Get-ChildItem -Recurse -File -Path '.' -Filter 'sheet1.xml' |
    Where-Object { $(Split-Path -Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

The amount of typing can be reduced by using aliases. While that is ok at an interactive shell, it is bad practice to encode aliases into script files.

gc $(gci -rec -file 'sheet1.xml'|?{$(Split-Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

If you are desperate to run this from a cmd command prompt, the following could be used.

powershell -NoLogo -NoProfile -Command ^
    Get-Content -Path $(Get-ChildItem -Recurse -File -Path '.' -Filter 'sheet1.xml' ^| ^
        Where-Object { $(Split-Path -Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName

powershell -NoLogo -NoProfile -Command ^
    gc $(gci -rec -file 'sheet1.xml'^|?{$(Split-Path $_.DirectoryName -Leaf) -eq 'worksheets' }).FullName
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文