JJB*_*JJB 1 windows cmd path batch-file
我将这样的文件名保存在变量中:
C:\Directory\Directory2\
Run Code Online (Sandbox Code Playgroud)
现在我想要这个:
C:\Directory\Directory2
Run Code Online (Sandbox Code Playgroud)
如何\从文件名中删除最后一个或最后一个字符?
好吧,只是不要!删除结尾的反斜杠可能会更改路径指向的目标;想想C:\\\xe2\x80\x93 它指向驱动器的根目录C:,而指向它的当前目录。
处理潜在尾随反斜杠的最可靠方法可能是追加.,因为C:\\Directory\\Directory2\\相当于C:\\Directory\\Directory2\\.,C:\\Directory\\Directory2和C:\\Directory\\Directory2.,因为所有这些路径都指向完全相同的位置。
如果后缀因美观原因而造成干扰,请在附加后通过for循环解决它.解决它:
set "dirPath=C:\\Directory\\Directory2\\"\nfor %%I in ("%dirPath%.") do echo "%%~fI"\nRun Code Online (Sandbox Code Playgroud)\n修饰符~f解析路径并将相对路径转换为完整/绝对路径。
如果提供的路径甚至可能以\\.或 类似的方式结尾C:.,则附加另一个路径.将更改其目标;for然而,这可以在附加之前通过另一个循环来解决.:
set "dirPath=C:\\Directory\\Directory2\\."\nfor %%J in ("%dirPath%") do for %%I in ("%%~fJ.") do echo "%%~fI"\nRun Code Online (Sandbox Code Playgroud)\n请注意,解析像and 这样的for通配符?*。