Batch file 在所需位置创建另一个批处理文件的批处理文件

Batch file 在所需位置创建另一个批处理文件的批处理文件,batch-file,Batch File,这是我的当前文件(它应该创建一个文件夹,转到该文件夹,然后在该文件夹中创建一个批处理文件): 尽管我将cd C:\“Program Files(x86)”\AcceleratorTool\放入,但它仍在C:\Windows\System32中创建文件 这可能是因为我必须(并且确实)以管理员身份运行原始批处理文件,我假设这是相关的。您的脚本中有一些错误。以下是固定功能版本: @echo off REM create the target directory mkdir "C:\Progr

这是我的当前文件(它应该创建一个文件夹,转到该文件夹,然后在该文件夹中创建一个批处理文件):

尽管我将
cd C:\“Program Files(x86)”\AcceleratorTool\
放入,但它仍在
C:\Windows\System32
中创建文件


这可能是因为我必须(并且确实)以管理员身份运行原始批处理文件,我假设这是相关的。

您的脚本中有一些错误。以下是固定功能版本:

@echo off 
REM create the target directory    
mkdir "C:\Program Files (x86)\AcceleratorTool" 2>nul

REM stores your current directory and changes the to the target directory
pushd "C:\Program Files (x86)\AcceleratorTool"

REM echos the command into the .bat file
echo taskkill /f /im chrome.exe > AcceleratorTool.bat

REM returns to the original directory
popd

注释解释了功能。不要忘记,您必须拥有访问
程序文件(x86)
的正确权限

你的剧本有一些错误。以下是固定功能版本:

@echo off 
REM create the target directory    
mkdir "C:\Program Files (x86)\AcceleratorTool" 2>nul

REM stores your current directory and changes the to the target directory
pushd "C:\Program Files (x86)\AcceleratorTool"

REM echos the command into the .bat file
echo taskkill /f /im chrome.exe > AcceleratorTool.bat

REM returns to the original directory
popd

注释解释了功能。不要忘记,您必须拥有访问
程序文件(x86)
的正确权限

要写入文件,没有理由将目录更改为目标位置:

@Echo关闭
设置“dirName=AcceleratorTool”
设置处理器|查找“64”>Nul&&(
设置“dirBase=%ProgramFiles(x86)%\%dirName%”
)| |设置“dirBase=%ProgramFiles%\%dirName%”
如果不存在“%dirBase%\%dirName%\”MD“%dirBase%\%dirName%”2>Nul | |退出/B
Echo TaskKill/F/IM chrome.exe/T>%dirBase%\%dirName%\%dirName%%~x0

要写入文件,没有理由将目录更改为目标位置:

@Echo关闭
设置“dirName=AcceleratorTool”
设置处理器|查找“64”>Nul&&(
设置“dirBase=%ProgramFiles(x86)%\%dirName%”
)| |设置“dirBase=%ProgramFiles%\%dirName%”
如果不存在“%dirBase%\%dirName%\”MD“%dirBase%\%dirName%”2>Nul | |退出/B
Echo TaskKill/F/IM chrome.exe/T>%dirBase%\%dirName%\%dirName%%~x0

您没有将
cd C:\“Program Files(x86)”\AcceleratorTool\
放入,您只是
回显它。还有,为什么要在程序文件目录中创建目录?您不是在创建或编写程序文件!不过,您并没有将cd C:\“Program Files(x86)”\AcceleratorTool\
放入,您只是在
回显它。还有,为什么要在程序文件目录中创建目录?您不是在创建或编写程序文件!谢谢,我以犯很多错误而闻名,我对这一点真的很陌生。@WELZ你应该加书签。它是一个非常宝贵的参考资料,即使对不是“真正的新手”来说也是如此。
pushd
不带参数只返回当前调用堆栈,不做任何其他事情。使用
pushd“C:\Program Files(x86)\AcceleratorTool”
当您使用现有目录发出生成目录命令时,您将得到一个错误,该错误最好直接指向
Nul
。感谢您的评论和Compo对其进行修复。所有的都是有效的。谢谢,我以犯很多错误而闻名,我真的是个新手。@WELZ你应该加书签。它是一个非常宝贵的参考资料,即使对不是“真正的新手”来说也是如此。
pushd
不带参数只返回当前调用堆栈,不做任何其他事情。使用
pushd“C:\Program Files(x86)\AcceleratorTool”
当您使用现有目录发出生成目录命令时,您将得到一个错误,该错误最好直接指向
Nul
。感谢您的评论和Compo对其进行修复。所有都是有效的。很好的脚本!我希望我的版本尽可能接近原始版本。很好的脚本!我希望我的版本尽可能接近原版。