command.exe 批处理文件:%XIL_SCRIPT_LOC:~0,-1% ? %~dp0?

Posted

技术标签:

【中文标题】command.exe 批处理文件:%XIL_SCRIPT_LOC:~0,-1% ? %~dp0?【英文标题】:command.exe batch file: %XIL_SCRIPT_LOC:~0,-1% ? %~dp0? 【发布时间】:2022-01-20 17:13:43 【问题描述】:

我正在尝试恢复旧的 Windows 7 工具以在 Powershell 下的 Windows 11 中工作... 以下 command.exe 批处理文件的 PowerShell 等效项是什么样的? 我对 ~dp0 和 %XIL_SCRIPT_LOC:~0,-1% 有点困惑

@echo off
REM XIL_SCRIPT_LOC should point to script location
set XIL_SCRIPT_LOC=%~dp0
REM Remove trailing slash
set XIL_SCRIPT_LOC=%XIL_SCRIPT_LOC:~0,-1%
set XILINX=%XIL_SCRIPT_LOC%
set XILINX_DSP=%XILINX%
set PATH=%XILINX%\bin\nt;%XILINX%\lib\nt;%PATH%
REM Unset XIL_SCRIPT_LOC
set XIL_SCRIPT_LOC=

这是我目前所拥有的:

# XIL_SCRIPT_LOC should point to script location
$env:XIL_SCRIPT_LOC = %~dp0
# Remove trailing slash
$env:XIL_SCRIPT_LOC = $env:XIL_SCRIPT_LOC:~0,-1%
$env:XILINX         = $env:XIL_SCRIPT_LOC
$env:XILINX_DSP     = $env:XILINX
$env:PATH           = "$XILINX\bin\nt;$XILINX\lib\nt;$env:PATH"
# Unset XIL_SCRIPT_LOC
$env:XIL_SCRIPT_LOC = $null

【问题讨论】:

【参考方案1】:
$env:XILINX         = $PSScriptRoot
$env:XILINX_DSP     = $PSScriptRoot
$env:PATH           = "$PSScriptRoot\bin\nt;$PSScriptRoot\lib\nt;$env:PATH"

【讨论】:

最佳实践是做好跨平台准备。 $(Join-Path -Path $PSScriptRoot -ChildPath 'lib' -AdditionalChildPath 'nt')

以上是关于command.exe 批处理文件:%XIL_SCRIPT_LOC:~0,-1% ? %~dp0?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何执行DOS命令

如何使用批处理文件一次打开两个文件

如何使用批处理文件一次打开两个文件

批处理 移动文件 到当前目录 求解

批处理文件注册OCX

批处理删除当前文件夹下所有指定类型文件(包括子目录)