Comment faire plusieurs fenêtres de console dans un onglet dans un fichier de tâches? Je veux faire une grille 2 × 2 de consoles dans un seul onglet. Je peux le faire à la main lors de la création de nouvelles consoles et de sélectionner des options "à droite" ou "en bas". Mais je veux que cela soit créé automatiquement au démarrage. Option "AutoSave/Restaurer les tâches ouvertes" n'est pas amenée pour une raison quelconque. Donc, le seul moyen est de le créer dans la tâche. Alors, comment puis-je créer une grille 2 × 2 dans la tâche?
J'ai proposé la mise en œuvre suivante. Je l'utilise pour les projets de développement Web. Consoles pour les coureurs de tâches (ex: gulp), git, JavaScript compilers (ex: Type: TypeScript), etc. L'objectif était d'ouvrir 4 fenêtres de console et de modifier le répertoire dans le répertoire où j'ai exécuté le * .cmd. Je ne voulais pas avoir plusieurs copies du script de lot en cas que je devais le changer. Je ne voulais pas que la coquille soit lot et que je voulais que la coquille soit bash. Je suis sous Windows, donc Cygwin est nécessaire pour Bash Shell.
J'ai créé un fichier .cmd arbitrairement nommé. J'ai appelé le mien 4 consoles.cmd
. Cygwin est installé (la version 64 bits dans mon cas). De plus, le package Cygwin chere
est installé et requis.
4 consoles.cmd
contenu:
@echo off
for %%i in ("%~dp0..\..") DO (set dirVar=%%~ni)
for %%i in ("%~dp0.") DO (set dir2Var=%%~ni)
set finalValue=%dirVar% %dir2Var%
start C:\"Program Files"\ConEmu\ConEmu64.exe -cmdlist ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:fna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1TVna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s2THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico"
Je mets 4 consoles.cmd
Dans A Service d'hébergement de fichier à des fins de sauvegarde n'en casse que mes accidents de disque dur. Aussi pour une commodité lors du partage des machines de développement.
Le script de lots modifiera le répertoire pour toutes les 4 fenêtres de la console dans le répertoire où le fichier .cmd existe. Donc j'ai créé durLink symbolique S Dans le répertoire où je souhaite que toutes les 4 fenêtres de console modifient le répertoire. Les liens symboliques pointent sur le canonique 4 consoles.cmd
.
Exécutez un lien symbolique et les 4 répertoires de travail des coques de console seront l'emplacement que la liaison symbolique est sur le système de fichiers.
My Gulp Tâche Code Runner pour toute personne intéressée
package.json
{
"name": "MyApp",
"version": "1.0.0",
"description": "",
"main": "gulpfile.js",
"private": true,
"devDependencies": {
"del": "^1.2.0",
"gulp": "^3.9.0",
"gulp-batch": "^1.0.5",
"gulp-concat": "^2.5.2",
"gulp-imagemin": "^2.2.1",
"gulp-minify-css": "^1.1.6",
"gulp-ng-annotate": "^1.0.0",
"gulp-plumber": "^1.0.1",
"gulp-rename": "^1.2.2",
"gulp-sourcemaps": "^1.5.2",
"gulp-uglify": "^1.2.0",
"gulp-watch": "^4.2.4",
"imagemin-pngquant": "^4.1.0"
},
"author": "Author",
"license": "ISC"
}
bower.json
{
"name": "MyProject",
"version": "1",
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components"
],
"dependencies": {
"bootstrap": "~3.3.4",
"jquery": "~2.1.3",
"angular": "~1.4.0",
"angular-route": "~1.4.0",
"angular-animate": "~1.4.0",
"font-awesome": "~4.3.0",
"underscore": "~1.8.3",
"bootstrap-datepicker": "~1.4.0",
"angularjs-toaster": "~0.4.12",
"angular-scroll": "~0.7.0",
"moment": "~2.10.2",
"angular-loading-bar": "~0.7.1"
}
}
gulpfile.js
'use strict';
var gulp = require('gulp');
var batch = require('gulp-batch');
var sourcemaps = require('gulp-sourcemaps');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var concat = require('gulp-concat');
var del = require('del');
var plumber = require('gulp-plumber');
var watch = require('gulp-watch');
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant');
var ngAnnotate = require('gulp-ng-annotate');
gulp.task('default', ['clean'], function () {
gulp.start('images', 'vendorCss', 'applicationCss', 'fontIcons', 'vendorJavascript', 'applicationJavascript');
});
gulp.task('clean', function (cb) {
del(['./dist/*'], cb);
});
gulp.task('images', function () {
return gulp.src([
'./content/img/**/*'
])
.pipe(imagemin({
optimizationLevel: 3,
progressive: true,
interlaced: true,
svgoPlugins: [{ removeViewBox: false }],
use: [pngquant()]
}))
.pipe(gulp.dest('./dist/img'));
});
gulp.task('fontIcons', function () {
return gulp.src([
'./bower_components/bootstrap/dist/fonts/**.*',
'./bower_components/font-awesome/fonts/**.*'
])
.pipe(gulp.dest('./dist/fonts'));
});
gulp.task('vendorCss', function () {
return gulp.src([
'./bower_components/bootstrap/dist/css/bootstrap.css',
'./bower_components/font-awesome/css/font-awesome.css',
'./bower_components/angularjs-toaster/toaster.css',
'./bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css',
'./bower_components/angular-loading-bar/build/loading-bar.css'
])
.pipe(concat('vendor.css'))
.pipe(gulp.dest('./dist/css'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('./dist/css'));
});
gulp.task('vendorJavascript', function () {
return gulp.src([
'./bower_components/jquery/dist/jquery.js',
'./bower_components/angular/angular.js',
'./bower_components/angular-route/angular-route.js',
'./bower_components/angular-resource/angular-resource.js',
'./bower_components/angular-animate/angular-animate.js',
'./bower_components/angular-scroll/angular-scroll.js',
'./bower_components/angular-loading-bar/build/loading-bar.js',
'./bower_components/angularjs-toaster/toaster.js',
'./bower_components/bootstrap/dist/js/bootstrap.js',
'./bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js',
'./bower_components/underscore/underscore.js',
'./bower_components/moment/moment.js'
])
.pipe(sourcemaps.init())
.pipe(concat('vendor.js'))
.pipe(gulp.dest('./dist/script'))
.pipe(uglify())
.pipe(rename('vendor.min.js'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dist/script'));
});
gulp.task('applicationCss', function () {
return gulp.src([
'./content/css/site.css',
'./content/css/animation.css'
])
.pipe(plumber())
.pipe(concat('app.css'))
.pipe(gulp.dest('./dist/css'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('./dist/css'));
});
gulp.task('applicationJavascript', function () {
return gulp.src([
'./angular/**/*.js'
])
.pipe(plumber())
.pipe(ngAnnotate())
.pipe(sourcemaps.init())
.pipe(concat('app.js'))
.pipe(gulp.dest('./dist/script'))
.pipe(uglify())
.pipe(rename('app.min.js'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dist/script'));
});
gulp.task('watchApplicationJavascript', ['applicationJavascript'], function () {
watch('./angular/**/*.js', batch(function (events, done) {
gulp.start('applicationJavascript', done);
}));
});
gulp.task('watchApplicationCss', ['applicationCss'], function () {
watch(['./content/css/site.css', './content/css/animation.css'], batch(function (events, done) {
gulp.start('applicationCss', done);
}));
});