[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[文件操作] 如何复制一个bat到指定文件夹里并执行这个bat

本帖最后由 pcl_test 于 2017-1-2 19:14 编辑

大家好!我想复制一个bat到文件夹中并执行这个bat,我是这样写的;

xcopy "C:\data\txt数合成.bat" "C:\adpk01\" && call "C:\adpk01\txt数合成.bat"

结果是txt数合成.bat,复制到了文件夹中,但没有执行这个bat,不知错在哪里,望大家指点一下,谢谢!

把 call 换成 start 试试

TOP

呵呵!换过试了也不行

TOP

回复 3# hkldd
  1. xcopy "C:\data\txt数合成.bat" "C:\adpk01\"
  2. start "" "C:\adpk01\txt数合成.bat"
复制代码

TOP

回复 4# ygqiang

呵呵!这样也不行哟,网上搜了不了贴子试过了都不行,我想用一行代码处理它,不知大家碰到过没。

TOP

xcopy E:\我的项目\a\1.bat E:\我的项目\b\ && call E:\我的项目\b\1.bat

把你的引号都去掉

附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

  1. for /f "delims=" %%i in ('dir /b /s /ad') do (
  2.     copy "file.bat" "%%i"
  3. )
  4. for /f "delims=" %%i in ('dir /b /s /a-d file.bat') do (
  5.     start "" "%%i"
  6. )
复制代码
执行这个是将你那个bat复制到当前文件夹父目录或子目录下 然后会自运行你那个bat脚本  编写好你自己需求那个脚本  然后执行我这个就可以了  同一个文件下  不同的自己改下路径就可以了

TOP

本帖最后由 zisss 于 2017-1-12 20:26 编辑

@ECHO OFF&& SETLOCAL&& PUSHD "%~dp0"&& SETLOCAL ENABLEDELAYEDEXPANSION&& SETLOCAL ENABLEEXTENSIONS&& SET _V=5&& IF NOT "!_V!"=="5" (Echo DelayedExpansion Failed&& Goto :Eof)
REM 以上為同一行

Copy "C:\data\txt数合成.Cmd" "C:\adpk01\">nul 2>&1&& Start "" "C:\adpk01\*.Cmd"&& Exit
REM 建議使用副檔名 .Cmd

@ECHO OFF&& SETLOCAL&& PUSHD "%~dp0"&& SETLOCAL ENABLEDELAYEDEXPANSION&& SETLOCAL ENABLEEXTENSIONS&& SET _V=5&& IF NOT "!_V!"=="5" (Echo DelayedExpansion Failed&& Goto :Eof)&& Copy "C:\data\txt数合成.Cmd" "C:\adpk01\">nul 2>&1&& Start "" "C:\adpk01\*.Cmd"&& Exit
REM 同行

您試試!!
我習慣不寫死絕對路徑
if "%SystemDrive%"=="C:" (
Copy "%SystemDrive%\data\txt数合成.Cmd" "%SystemDrive%\adpk01\">nul 2>&1&& Start "" "%SystemDrive%\adpk01\*.Cmd"&& Exit
)

我所有子批次抬頭  給您參考
@ECHO OFF&& SETLOCAL&& PUSHD "%~dp0"&& SETLOCAL ENABLEDELAYEDEXPANSION&& SETLOCAL ENABLEEXTENSIONS&& SET _V=5&& IF NOT "!_V!"=="5" (Echo DelayedExpansion Failed&& GOTO :EOF)
SET "_LEE="
REM :::::::::::::::::::::::::: REM
REM ::  設定個人  啟動變數  :: REM
REM :::::::::::::::::::::::::: REM
If Not Exist "%_LEE%" (
If Exist "D:\Lee\_START.Cmd" SET "_LEE=D:\Lee"
If Exist "E:\Lee\_START.Cmd" SET "_LEE=E:\Lee"
If Exist "F:\Lee\_START.Cmd" SET "_LEE=F:\Lee"
If Exist "G:\Lee\_START.Cmd" SET "_LEE=G:\Lee"
If Exist "H:\Lee\_START.Cmd" SET "_LEE=H:\Lee"
)
If Not Exist "%_LEE%" @Echo Off&& Cls&& Color 4F&& Echo.&& Echo   [啟動變數] : [設定失敗] : Error.. %%_LEE%%&& Echo.&& Pause
REM :::::::::::::::::::::::::: REM
REM ::  呼叫設定  環境變數  :: REM
REM :::::::::::::::::::::::::: REM
If Exist "%_LEE%" (
Call "%_LEE%\SET_APP.Cmd"||Echo Off&& Title 發生錯誤&& Color 4F&& Echo.&& Echo   [呼叫設定] : Call "%%_LEE%% 顯示 : %_LEE%\SET_APP.Cmd" [發生錯誤] : Error Not Exist&& Echo.&& Pause
Call "%_LEE%\SET_LOG.Cmd"||Echo Off&& Title 發生錯誤&& Color 4F&& Echo.&& Echo   [呼叫設定] : Call "%%_LEE%% 顯示 : %_LEE%\SET_LOG.Cmd" [發生錯誤] : Error Not Exist&& Echo.&& Pause
Call "%_LEE%\SET_CHO.Cmd"||Echo Off&& Title 發生錯誤&& Color 4F&& Echo.&& Echo   [呼叫設定] : Call "%%_LEE%% 顯示 : %_LEE%\SET_CHO.Cmd" [發生錯誤] : Error Not Exist&& Echo.&& Pause
)

TOP

我也在想这个问题 试过 call 跟start 都是调用另一个批处理的命令 而不是独立运行

TOP

返回列表