0
@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\SteamC:\Program Files\Steam\butts.exe

4

3 回答 3

2

尝试这个:

@echo off&setlocal 
for %%i in ("C:\Program Files\Steam\butts.exe") do set "steampath=%%~dpi"
:: remove last backslash
echo %steampath:~0,-1%
于 2013-04-02T20:16:26.007 回答
2

哈!最快和最简单的方法就是\..在末尾添加一个。例如,在我的桌面上,我有一个名为weather.xml. 如果我这样做:

dir c:\users\me\Desktop\weather.xml\..

...我最终得到了我的桌面的目录列表。:)

所以你可以完成你所需要的

cd %UserInput%\..

否则,您可以将路径传递给for循环或call :label子例程以结束%%~dpX. help for有关详细信息,请参阅和的最后几页help call


如果您想变得更 hacksier,而不是要求用户输入path\to\fileto set %UserInput%,您可以使用powershell启动一种File... Open文件选择器。有关详细信息,请参阅此答案

于 2013-04-02T20:09:51.540 回答
1

您可以使用此批次

@echo off
set /p UserInput=What file would you like to hide?
for %%i in ("%UserInput%") do set path="%%~dpi"
cd %path%
于 2013-04-02T20:20:57.267 回答