Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file CMD是否从字符串中排除当前文件夹路径?_Batch File_Cmd - Fatal编程技术网

Batch file CMD是否从字符串中排除当前文件夹路径?

Batch file CMD是否从字符串中排除当前文件夹路径?,batch-file,cmd,Batch File,Cmd,如何替换字符串中的当前文件夹名称 我有以下路径:tld\u Data\Managed\Assembly CSharp firstpass.dll 我的bat文件位于D:/Make/apply.bat 当我尝试从上面的路径创建文件夹时,我在路径中得到当前文件夹名 for /f "tokens=*" %%P in (tld_Data\Managed\Assembly-CSharp-firstpass.dll) do ( if not exist "folder%%~pP" md "folder%%~

如何替换字符串中的当前文件夹名称

我有以下路径:
tld\u Data\Managed\Assembly CSharp firstpass.dll

我的bat文件位于
D:/Make/apply.bat

当我尝试从上面的路径创建文件夹时,我在路径中得到当前文件夹名

for /f "tokens=*" %%P in (tld_Data\Managed\Assembly-CSharp-firstpass.dll) do (
if not exist "folder%%~pP" md "folder%%~pP"
)
它使路径
D:/Make/Make/tld\u Data/Managed/Assembly CSharp firstpass.dll
,但我需要
D:/Make/tld\u Data/Managed/Assembly CSharp firstpass.dll

怎么做

如果我将字符串更改为
C:/tld\u Data\Managed\Assembly CSharp firstpass.dll
一切正常,但不太好

listA:
x:/tld\u Data\Managed\Assembly-CSharp-firstpass.dll
x:/tld\u Data\Managed\Assembly-CSharp.dll
x:/tld\u Data\Managed\Assembly-UnityScript-firstpass.dll
x:/tld\u Data\Managed\Assembly UnityScript.dll

列表b:
tld\u Data\Managed\Assembly-CSharp-firstpass.dll
tld\U数据\Managed\Assembly-CSharp.dll
tld_Data\Managed\Assembly-UnityScript-firstpass.dll

tld\u Data\Managed\Assembly UnityScript.dll

我不确定是否真的能忍受您的问题

但是试一下:

@echo off
for /f "tokens=*" %%P in (listb.bin) do (
echo if not exist "%%~dpnxP" md "%%~dpnxP"
)

如果输出正常,则清除回声

1。代码现在读取
tld\u Data\Managed\Assembly CSharp firstpass.dll的文件内容,这很奇怪。2.
文件夹
中的实际值是多少如果不存在“folder%%~pP”md“folder%%~pP”
?folder
tld_Data
位于bat file
D:/Make/tld_Data/Managed/
附近,但当我尝试从cmd创建它时,它会从根开始将所有文件夹名称附加为父文件夹。确切地说,我需要从这个字符串
tld\u Data\Managed\Assembly CSharp firstpass.dll
在当前文件夹中创建文件夹,不带文件名和扩展名。什么是
list.bin
以及如何在批处理文件中使用它?listA.bin和listB.bin是文件路径的文本文件listB与listA相同,但带有
X:///code>preffix(因为我的问题)我逐行读取listA以递归地匹配两个文件夹,listB以使用(listB.bin)do中的%%P(如果不存在%patchfolder%%~pP md%patchfolder%%~pP)
为/f“tokens=*”%%P创建目录结构,所以现在我需要使用两个列表,因为我尝试创建文件夹时(使用上面的循环)没有模仿根文件夹路径X:/它创建了错误的结构,这不完全是我需要的。现在它是
F:\tld\u Data\Managed\Assembly CSharp firstpass.dll
如果我删除
dp
并添加
path
它将是
\path\tld\u Data\Managed\Assembly CSharp firstpass.dll
,但我想得到这个
path\tld\u Data\Managed\code>>