我正在尝试在 Windows 中为命令行构建一个简单的批处理文件来执行“dir like”命令来列出按时间排序的目录内容,避免输入:( Get-ChildItem | Sort-Object -Property LastWriteTime
整个字符串运行完美)。
我最后一次尝试是这样的(.dir.bat
[前面有一个点,以区别于常规dir
]):
@echo on
Get-ChildItem ^| Sort-Object -Property LastWriteTime
启动后.dir.bat
:
C:\>Get-ChildItem | Sort-Object -Property LastWriteTime
"Get-ChildItem" is not recognized as an internal or external command,
executable program or batch file.
我想我几乎尝试了所有方法。甚至,正如我上次尝试所显示的那样,使用、、引号、括号等|
来转义管道。^|
start
echo
我读到批处理解释采取|
实例化操作,所以这解释了为什么以前的实验启动了一个新powershell/cmd
窗口而不是执行想要的字符串命令。
答案1
首先,命令是:
Get-ChildItem | Sort-Object -Property LastWriteTime
其次,PowerShell 脚本是从.ps1
文件运行的。如果您希望从 CMD/batch 运行它们,请使用以下
powershell
命令:
powershell "Get-ChildItem | Sort-Object -Property LastWriteTime"