Windows批处理文件有哪些鲜为人知但又重要且有用的功能?
指南:
澄清:我们在这里指的是由cmd.exe处理的脚本,这是WinNT变体的默认值.
(另请参阅:Windows批处理文件:.bat vs .cmd?)
是否可以将绝对路径转换为批处理文件中的相对路径?(与此相反).显然,您需要两个输入:转换的绝对路径,以及您希望将其相对化的绝对参考路径.
例如:
Path to convert: c:\documents\mynicefiles\afile.txt
Reference path: c:\documents
Result: mynicefiles\afile.txt
Run Code Online (Sandbox Code Playgroud) 我正在编写一个批处理文件,该文件在相对于传入批处理文件的第一个参数指定的文件夹中执行许多操作.在批处理文件中,我想向用户回应我正在使用的文件夹.但是,每次回显路径时,它都包含.... \我用来确定放置文件夹的位置.例如.
set TempDir=%1\..\Temp
echo %TempDir%
Run Code Online (Sandbox Code Playgroud)
因此,如果我使用参数运行我的批处理文件\FolderA,则echo语句的输出将FolderA\..\Temp不是\Temp我期望的.
我正在使用批处理脚本来调用java应用程序.Java应用程序将绝对文件路径作为参数.
我需要使用文件的相对或绝对路径作为参数调用我的批处理脚本,然后传递文件的绝对路径以执行java.例:
myscript从位置运行脚本c:/folderA
myscript folderB/file.txt
myscript c:/folderA/folderB/file.txt
Run Code Online (Sandbox Code Playgroud)
应该能够c:/folderA/folderB/file.txt在两种情况下获得完整的绝对路径.我怎么做?
只是为了尽可能具体:我只需要BATCH SCRIPT代码来传递ti的相对或绝对路径作为参数后检索绝对文件路径字符串.当我用它调用java应用程序时,不是实际的部分.
有没有办法..从批处理中解析绝对文件路径?例如,应输出以下批处理脚本C:\Users\xyz\other\abc.txt:
REM Project dir is an absolute path, for example, C:\Users\xyz\project\
SET projectDir=%~1
REM Target file is a path relative to the project dir, for example, ..\other\abc.txt
SET target=%~2
REM Concatenate paths. This becomes C:\Users\xyz\project\..\other\abc.txt
SET absoluteTarget=%projectDir%%target%
SET absoluteTargetClean=...
echo %absoluteTargetClean%
Run Code Online (Sandbox Code Playgroud)
的absoluteTarget变量是指已存在的文件.
我需要相同的目录而不是文件.你能用同样的方法来实现吗?