@echo off
set /p UserInput= What file would you like to hide?
cd %UserInput%
所以我想制作一个批处理文件,当运行时询问用户一个文件,它将隐藏在随机文件夹的迷宫中。让我解释一下。
假设我输入C:\Program Files\Steam\butts.exe
它会在C:\Program Files\Steam
这就是我被困住的地方。如何从C:\Program Files\Steam
找到C:\Program Files\Steam\butts.exe
?
答案 0 :(得分:2)
哈!最快捷,最简单的方法就是在最后添加\..
。例如,在我的桌面上,我有一个名为weather.xml
的文件。如果我这样做:
dir c:\users\me\Desktop\weather.xml\..
...我最终得到了我桌面的目录列表。 :)
所以你可以用
完成你需要的东西cd %UserInput%\..
否则,您可以将路径传递到for
循环或call :label
到子例程以最终%%~dpX
。有关详细信息,请参阅help for
和help call
的最后几页。
如果您想要更加顽固,而不是要求用户输入path\to\file
来设置%UserInput%
,您可以使用powershell
来启动File... Open
种文件选择器。有关详细信息,请参阅this answer。
答案 1 :(得分:2)
试试这个:
@echo off&setlocal
for %%i in ("C:\Program Files\Steam\butts.exe") do set "steampath=%%~dpi"
:: remove last backslash
echo %steampath:~0,-1%
答案 2 :(得分:1)
您可以使用此批次
@echo off
set /p UserInput=What file would you like to hide?
for %%i in ("%UserInput%") do set path="%%~dpi"
cd %path%