我有一个批处理文件,用户输入文件的路径,然后从路径中提取文件名。
我使用该文件名创建一个同名的文件夹。
在该文件夹中,我想创建一个log.txt文件,我在批处理文件中调用的进程可以将其日志消息写入。
以下是代码:
set /p pathFoFile="Enter path fo file: "
FOR %%i IN ("%pathFoFile%") DO (
set outputFolder=%%~ni
)
someprocess -p1 blabla -p2 blabla -p3 %outputFolder% > %outputFolder%\log.txt
最后一部分%outputFolder%\log.txt
似乎是问题所在,因为当我刚放> log.txt
然而,当我回应这个:
echo %outputFolder%\log.txt
它打印正确的路径。
如何使用foldername并创建此log.txt文件?
修改
我得到的路径可能如下:
..\some\folder\thefile.egf
或只是
thefile.egf
或绝对路径。
我提取
thefile
并想致电:
someprocess -p1 blabla -p2 blabla -p3 thefile > thefile\log.txt
应该相对于批处理文件创建包含thefile
的文件夹log.txt
。路径中没有驱动器号。
使用%outputFolder%\log.txt
或"%outputFolder%\log.txt"
时出现的错误是系统无法找到路径。
答案 0 :(得分:1)
如果路径中有空格,请使用引号。
someprocess -p1 blabla -p2 blabla -p3 "%outputFolder%" > "%outputFolder%\log.txt"
答案 1 :(得分:0)
%%~dpni
会扩展变量以包含驱动器,路径和文件名。