我是新来的。我在网站上工作,有一个名为web的文件夹,在此文件夹中,有许多子目录,例如“ template1”,“ template2”等。在这些模板中,有一个共同点,每个仅包含三个相同的东西文件,“ draw.html”,“ draw.js”,“ draw.css”。每次我想创建一个新页面时,都需要手动创建此模式。我想知道是否可以编写批处理文件,因此可以通过单击pat.bat来执行此操作,它会为我生成该文件夹和三个文件。经过思考,我决定执行以下操作:在Web文件夹中,创建两个文件:在Pat.txt中的['pat.bat','pat.txt'],用行分隔三个字符串:[draw.html, [draw.js,draw.css],批处理文件中的逻辑非常简单:它要求用户输入目录名称,然后生成
directory_name
|-draw.js
|-draw.html
|-draw.css
here's the batch file I worked out <pat.bat>
@echo off
:dir_loop
echo Create a directory named:
set /p directory=
if "%directory%" equ "" (
echo Please enter a valid directory
goto :dir_loop
)
:pat_loop
if not exist pat.txt (
echo Please create a pat.txt file which
echo contains all your files separated by
echo line with correct extension to
echo generate into the folder.
echo "Have you done it? (y/n)"
set /p good=
if not exist pat.txt (
echo Sorry, no pat.txt detected in current directory
goto :pat_loop
)
)
:final
mkdir %directory%
for /F "delims=," %i in (pat.txt) do (
cd %directory%
cd. > %i
cd..
)
pat.txt
draw.js
draw.css
draw.html
好的,这是一个问题,当我将“目录”变量更改为默认值而不是用户输入,并在Web目录内提升的命令提示符下运行此命令时,它工作正常(以下代码)
@echo off
:dir_loop
echo Create a directory named:
rem !!! change directory from user input to assignment
set directory=template1
if "%directory%" equ "" (
echo Please enter a valid directory
goto :dir_loop
)
:pat_loop
if not exist pat.txt (
echo Please create a pat.txt file which
echo contains all your files separated by
echo line with correct extension to
echo generate into the folder.
echo "Have you done it? (y/n)"
set /p good=
if not exist pat.txt (
echo Sorry, no pat.txt detected in current directory
goto :pat_loop
)
)
:final
mkdir %directory%
for /F "delims=," %i in (pat.txt) do (
cd %directory%
cd. > %i
cd..
)
but, if I set the variable 'directory' to user input rather than string, when I click on the <pat.bat>
file, entry my folder name for example, ak, it creates an ak folder in web with nothing in it. (first <pat.bat>
code)
我想这是我的for循环的变量赋值问题,如果您能提供帮助,我将非常高兴。
PS:您只需在桌面上创建一个文件夹,在其中创建两个文件pat.txt,pat.bat并将其粘贴即可测试代码。要测试第二个bat文件,请在该文件夹中键入cmd并粘贴代码(确保首先创建pat.txt)